资讯专栏INFORMATION COLUMN

Python_基础

mindwind / 1100人阅读

摘要:依次写出函数名括号参数语句结束符。使用和是的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。命名的关键字参数作用为了限制调用者可以传入的参数名,同时可以提供默认值。

Run
源代码

Python源代码的文件以"py"为扩展名,由Python程序解释,不需要编译

命令:python 文件

字节代码

Python源文件经过编译后生成的扩展名为"pyc"的文件
编译方法:

import py_compile
py_compile.compile("url") # url编译的文件的路径

编译后的文件为:xxx.cpython-36.pyc

优化代码

经过优化的源文件,扩展名为".pyo"
命令:pyhont -O -m py_comile 编译的文件

编译后的文件为:xxx.cpython-36.opt-1.pyc

Type
int, float, str, bool, NoneType

tuple, list, dict, set
Lists
list = []
list[i:j]  # 返回列表的子集
list[-1]   # 访问的最后一个元素
list[:-1]  # 只返回最后一个元素

list[i] = val
list[i:j] = otherlist  # replace ith to jth element with otherlist
del list[i:j]

list.append(item)
list.extend(list)
list.insert(0, item)
list.pop()
list.remove(i)
list1 + list2     # 结合两个列表
set(list)         # 从列表中删除重复元素

list.reverse()
list.count(item)
sum(list)

list.sort()

zip(list1, list2)
sorted(list)
",".join(list)
Dict
dict.keys()
dict.values()
"key" in dict
dict["key"]   # throws KeyError
dict.get("key")
dict.setdefault("key", 1)
Iteration
for item in ["a", "b", "c"]:
for i in range(4):     # 0 到 3
for i in range(4, 8):  # 4 到 7
for key, val in dict.items():
String
str[0:4]
len(str)

string.replace("-", " ")
",".join(list)
"hi {0}".format("j")
str.find(",")
str.index(",") 
str.count(",")
str.split(",")

str.lower()
str.upper()
str.title()

str.lstrip()
str.rstrip()
str.strip()

str.islower()

len() # 求序列长度
+ # 连接2个序列
* # 重复序列元素
in # 判断元素是否在序列中
max() # 返回最大值
min() # 返回最小值
Set

集合Set于列表,元组类似,可以存储多个数据,但是,这些数据是不重复的。

集合对象支持union(联合), intersection(交集), difference(差集)sysmmetric_difference(对称差集)等数学运算

>>> x = set("abcd")
>>> x
{"c", "a", "b", "d"}
>>> type(x)

>>> y = set(["h","e","l","l","o"])
>>> y
{"h", "e", "o", "l"}
>>> z = set("spam")
>>> z
{"s", "a", "m", "p"}
>>> y&z # 交集
set()
>>> x&z # 交集
{"a"}
>>> x|y # 并集
{"a", "e", "d", "l", "c", "h", "o", "b"}
>>> x-y # 差集
{"c", "a", "b", "d"}
>>> x^z # 对称差集(在x或z中,但不会同时出现在二者中)
{"m", "d", "s", "c", "b", "p"}
Casting
int(str)
float(str)
str(int)
str(float)
bool(1)
Comprehensions
[fn(i) for i in list]            # .map
map(fn, list)                    # .map, 返回的迭代

filter(fn, list)                 # .filter, 返回的迭代
[fn(i) for i in list if i > 0]   # .filter.map
Regex
import re

re.match(r"^[aeiou]", str)
re.sub(r"^[aeiou]", "?", str)
re.sub(r"(xyz)", r"1", str)

expr = re.compile(r"^...$")
expr.match(...)
expr.sub(...)
Function
定义函数

使用关键字:def。 依次写出函数名, 括号, 参数, 语句结束符 :。然后,在缩进块中编写函数体,函数的返回值用return语句返回

def my_abs (x):
    if x >= 0:
        return x
    else:
        return -x    
空函数

定义一个什么也不做的空函数,使用pass语句

def nop ()
    pass

空函数的作用:提供占位符

参数

默认参数一定要用不可变对象(基本变量类型和tuple), 如果是可变对象,程序运行时会有逻辑错误。

定义可变参数和关键字参数的使用:

*args是可变参数,args接收的是一个tuple

**kw是关键字参数,kw接收的是一个dict

调用函数时如何传入可变参数和关键字参数:

可变参数既可以直接传入:func(1, 2, 3),又可以先组装listtuple,再通过*args传入:func(*(1, 2, 3))

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{"a": 1, "b": 2})

使用*args**kwPython的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。

命名的关键字参数作用:为了限制调用者可以传入的参数名,同时可以提供默认值。

定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数

返回值

函数执行完毕也没有return语句时,自动return None
函数可以同时返回多个值,但其实就是一个tuple

匿名函数

lamdba 参数:函数体

匿名函数自动具有返回值

Characteristic

区分大小写

语句结尾使用:

Tab

if的各种假

Flase: "", None, 0, -0.0, 0.0 [], {}, (), Flase

==is

is是比较两个引用是否指向了同一个对象(引用比较)
==是比较两个对象是否相等

a = 2
b = 2

a is b # True, 为True的原因是[-5, 256]

c = 500
d = 500
c is d # False

python解释器为了优化速度,会把[-5, 256]之间的数据提前存放到小整数对象池中,程序中要使用到[-5, 256]之间范围的数据,就不会重新创建一份,都是指向对象池中的同一份数据,除了这个区间之外的数据,每次使用时解释器都会重新申请一块内存,用来存储数据。

深拷贝和浅拷贝

浅拷贝:对于一个对象的顶层拷贝(拷贝了引用,并没有拷贝内容)
深拷贝:重新申请内存存储复制的数据.

import copy
a = [1, 2, 3]

b = a # 浅拷贝
c = copy.deepcopy(a) # 深拷贝

区别copydeepcopy:
deepcopy:所有的内容都重新申请内存,依次拷贝
copy: 外层重新申请内存

拷贝元组的特点:
都是相同引用地址(元组是不可变类型,拷贝之后还是相同地址)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41346.html

相关文章

  • Python爬虫学习路线

    摘要:以下这些项目,你拿来学习学习练练手。当你每个步骤都能做到很优秀的时候,你应该考虑如何组合这四个步骤,使你的爬虫达到效率最高,也就是所谓的爬虫策略问题,爬虫策略学习不是一朝一夕的事情,建议多看看一些比较优秀的爬虫的设计方案,比如说。 (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法...

    liaoyg8023 评论0 收藏0
  • Python:Tornado 第一章:异步及协程基础:第二节:Python关键字yield

    摘要:在种,使用关键字定义的迭代器也被称为生成器迭代器迭代器是访问集合内元素的一种方式。调用任何定义包含关键字的函数都不会执行该函数,而是会获得一个队应于该函数的迭代器。 上一篇文章:Python:Tornado 第一章:异步及协程基础:第一节:同步与异步I/O下一篇文章:Python:Tornado 第一章:异步及协程基础:第三节:协程 协程是Tornado中进行异步I/O代码开发的方法...

    reclay 评论0 收藏0
  • 从能做什么到如何去做,一文带你快速掌握Python编程基础与实战

    摘要:本文的分享主要围绕以下几个方面能做什么常见应用场景介绍如何学习语法基础实战面向对象编程实战练熟基础小游戏项目的实现与实战一能做什么一种编程语言往往可以应用于多方面,有些方面比较常用,有些方面极为常用。比如表示是一个空列表。 摘要:Python语言的教程虽然随处可见,但是忙于日常业务/学习的你或许:一直想要找个时间学一点,但是又不知道该从何下手?本文将从Python能做什么,如何学习Py...

    BLUE 评论0 收藏0
  • python基础教程:模块高级技巧

    摘要:标准模块附带了一个标准模块库。它返回一个如果调用不传递参数,则列出当前已经定义的所有名字用可以查看所有的内置类型变量函数等,方法是借助标准模块模块高级技巧总结的搜索路径,顺序一定要搞得清编译后的文件内置函数查看模块定义的名字。 上一节,我们讲解了Python模块的基础知识,这一节我们继续深入了解模块的更多知识,从而让大家全面了解、掌握和运用模块到我们实际的编程中。 在上一节中有一句话接...

    JasinYip 评论0 收藏0
  • Python基础之正确重载运算符

    摘要:一运算符重载基础运算符重载对已有的运算符进行重新定义,赋予其另一种功能,以适应不同的数据类型。重载一元运算符重载一元运算符只需实现相应的特殊方法,这些特殊方法只有一个参数。 导语:本文章记录了本人在学习Python基础之面向对象篇的重点知识及个人心得,打算入门Python的朋友们可以来一起学习并交流。 本文重点: 1、掌握运算符重载的定义和作用,以及Python对其的内部限制;2、掌握...

    Scliang 评论0 收藏0
  • OpenCV自适应直方图均衡CLAHE图像和分块大小不能整除的处理

    摘要:具体处理的源代码如下小结自适应直方图均衡图像和分块大小不能整除时,采用的是将图像补齐到能整除大小,补齐是按边界镜像的方式补齐。 一、引言 最近一个月来都在研究O...

    szysky 评论0 收藏0

发表评论

0条评论

mindwind

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<