Python 基本理论(二)

Python 匿名函数 lambda

函数没有名字 直接用lambda表达式来替代
lambda args,… : express
lambda 表达式只能是简单的表达式 不能多条语句
lambda 表达式的结果就是lambda函数的返回值
如果有多个值是,需要把多个值用() [] {} 作为一个整体

x = lambda arg:arg**2
x(10)
x(199)

*python中没有三目运算符,但是有一个效果等同的

val if expr else otherval
a if a>b else b 如果a>b则取a的值 否则取b的值
a>b?a:b (python中没有这个)

(a,b)[a>b]  取得较小值
(b,a)[a>b]
*python中如果需要对一条语句进行拆行 用 \

可变数据 作为函数参数
在函数内部可以对可变对象进行修改 修改对实参是可见
形参如果引用了其它对象则不会再影响实参
不可变数据 作为函数参数
在函数内部进行修改 即让形参引用其它对象 对于实参是不影响

局部变量: 在函数内部定义的变量 只能在本函数内部访问
全局变量: 在本模块下定义的变量 在函数外面
全局变量在模块的所有函数里面都可以直接访问

函数内部可以直接访问全局变量
如果要改变全局变量的指向(引用的对象 让全局变量引用其它对象) 需要用global 关键字声明全局变量
对于可变全局数据对象 在函数内部可以对可变对象进行修改

****局部变量可以和全局变量同名

globals() 获得所有的全局变量
locals() 获得所有的局部变量

LEGB: 变量搜索顺序
local   局部-->  enclosed 闭包 --> global 全局 --> buildin  内置

return 直接终止函数调用
yield 暂停函数调用

IO:

python3中的input 在python2中其实是 raw_input
eval() 能够把字符串的内容当作python语句来执行 相当于Python2中input
python2中的 range() 函数返回一个列表 把数据一次性全部生成出来 非常浪费内存
python3中的 range() 函数其实是一个生成器 不会把所有数据全部一次性生成出来 只有当循环时才会一个一个生成

open() 内置函数 打开文件 返回一个可以操作该文件的对象

read(num)     读取指定字节个数的数据 如果不指定读取到文件末尾
readline()    读取一行
readlines()   读取多行
write()       
writelines()  
seek()        
tell()        
json 数据格式(是非常重要的一种数据格式)
把对象(列表、字典)序列化为字符串格式
把字符串反序化为对象
json.load()
json.loads()
json.dump()
json.dumps()

random 随机数模块
random() 生成[0,1) 区间的一个实数
randint(a,b) 生成[a,b]区间的一个整数
choice(seq) 生成一个在seq序列中的数据

sys 系统
命令行参数 argv 成员
path 环境变量 搜索库的路径 列表

os
rename 改名
mkdir 创建目录
remove 删除目录
getcwd 获取当前工作路径

time:
time 秒数
localtime 获得当前系统时间 tuple
sleep 睡眠

datetime
import datetime
datetime.datetime.now()
strftime(format) 年 %Y %m %d %H %M %S
1.当前系统时间
2.构造时间对象
3.时间对象显示

全局的排序函数:
sorted(iterable,key,reverse)
对任意可迭代的数据按key进行排序 返回一个新的列表

map
reduce
filter
列表推导式

默认参数(特别注意):
def func(l = []): #python中函数的默认值 对象 创建函数时 默认参数的对象已经创建 默认值这个对象只有一个
l.append(100)
return l

x = [1,2,3]
func(x)
func(x)
func()
func() #[100,100]

python中默认参数不要引用可变数据类型
def func(l = None):
if l == None:
l = []
l.append(100)
return l

闭包 生成器 装饰器 列表生成式 map/reduce/filter

== is 区别:
==: 比较值 内容
is: 是否引用同一个对象 两个变量 或者对象 is 为True 它们的id()一定是相同的

in    not in
is    is not
a is not b
not a is b
a not is b   Error
id(a) == id(b)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值