python之day4
今天的主要内容:
Day04
一 作业
二 内置函数
三 装饰器
四 迭代器,生成器
五 递归
六 冒泡算法
上节课复习
1 python 基础
2 基本数据类型:str,dict...
s = "alex" => str
3 函数式编程
函数定义
内置函数
文件处理
4 其他:
三元运算
lambda表达式
li = [11,22,3,33,44]
def f1(arg):
arg.append(55)
li = f1(li)
#f1(li)
print(li)
返回None
正式内容:
callable:是否可以被引用,函数可以引用,变量不可以
通过asc表对应的数字和字母。
a = chr(65)
print(a)
a1 = ord(a)
print(a1)
返回
A
65
总结:chr 65->A ord A->65
随机数功能
AscII码 字母范围是 65-90
#随机字母的产生方法 import random li = [] for i in range(6): # 65<=temp<91 (65-90) temp = random.randint(65,91) c =chr(temp) li.append(c) result = "".join(li) #元素必须都是字符串 print(result)
在第三位和第五位规定是数字,剩下的是字母。
import random li = [] for i in range(6): r = random.randint(0,5) #一个随机数(0-4) # 65<=temp<91 (65-90) if r == 2 or r == 4: #如果随机数=2或者4时 num = random.randint(0, 10) #随即赋值给num li.append(str(num)) #join 元素必须都是字符串,然后加入到li里面 else: temp = random.randint(65,91) c =chr(temp) li.append(c) result = "".join(li) print(result)
全部都是随机的验证码
Python执行流程:
compile 编译
exec 执行
single 单行
eval 表达式 拥有返回值
得到64这个返回值
exec 就是python的格式进行执行,代码和字符串,但是没有返回值
s = '7+8+9' a = exec(s) print(a) b = eval(s) print(b)
返回
None
24
dir()
快速查看一个对象提供哪些功能
返回true 或者 false
div取商 和余数 出来的就是列表格式
a = divmod(99,10) print(a) a1,a2 = divmod(97,10) print(a1) print(a2)
对象与类的关系
对象是类的实例。
Isinstance判断对象是不是类的实例
li = [11,22,33,44]
res = isinstance(li,list)
print(res)
返回True
列表字典元组 都是可迭代的对象
filter (函数,可迭代的对象)
将li 传入到前面的函数,如果返回true,就将值添加到ret里面
如果返回False 就不添加。
li = [11,22,33,44,55,66]
def f1(a1):
if a1>22:
return True
res = filter(f1,li)
print(list(res))
li = [11,22,33,44,55,66]
res = filter(lambda a:a>33,li)
print(list(res))
返回[44, 55, 66]
不可变的集合(set)
map(函数,可迭代的对象(可以进行for循环))
li = [11,22,33,44,55,66]
res = map(lambda a:a+100,li)
print(list(res))
返回 [111, 122, 133, 144, 155, 166]
总结:
local() 局部变量
globals()全局变量
Hash() 转换成hash值,用于字典key的存储
Python3以字符的格式查看
Python2 以字节的格式查看
a = '李杰'
b = bytes(a,encoding='utf-8')
r = len(b)
print(r)
a1 = '李杰'
r1 = len(a1)
print(r1)