python_10
Posted aikang525
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_10相关的知识,希望对你有一定的参考价值。
生成器:
生成器的获取补充:
send()和next()效果一样,
yield时可以使用赋值形式接收send传过来的值
send获取下一个值的效果和next基本一致
只是在获取下一个值的时候,给你上一个yield传递数据
注意事项:
第一次使用生成器需要预激活,
第一次取值需要使用next
最后一个yield不能接收外部值
在python3.x中增加了field form a:等于取值不惜要一个一个返回,但是外边可以一个一个接收
推导式:
列表推导式:
变量名 = [i for i in range(10)]:会循环打印i
生成器表达式:
只是在列表推导式中把中括号换成小括号
他们的不同:
返回值不同
生成器几乎不占用内存
推导式细化:
列表推导式:
[和元素相关的操作 for 元素 in 可迭代对象 ] --遍历
[满足条件时的操作 for 元素 in 可迭代对象 if 条件语句] -- 条件筛选
多层嵌套:
et = [for lst in name for name in lis if name.count(‘e‘) == 2]
字典推导式:
macse_frepuency = {macase[k]:k for k in macse}
结合推导式:
自带结果去重
squared = {x**2 for x in[1,-1,2]}
句柄:
handler(操纵杆),文件操作符,文件句柄,文件对象
面试题:
def demo():
for i in range(4):
yield i
g1=(i for i in g)
g2=(i for i in g1)
print(list(g1)) 到这里才开始执行
print(list(g2)) g1已经变成了生成器,值已经给我list[g1],所以list[g2]已经取不到值了
def add(n,i):
return n+1
def test():
for i in range(4)
yield i
g = test()
for n in [1,10]:
g = (add(n,i) for i in g)
print(list(g))
内置函数:
,某个方法属于某个数据类型的变量,就用,调用
如果某个方法不依赖与任何数据类型,就直接调用 -- 内置函数和自定义函数
作用域:
locals() :返回本地作用域中的所有名字
golbals() :返回全局作用域中的所有名字
迭代器和生成器相关的:
迭代器 = 迭代器.__next__() --> 迭代器 = next(迭代器)
迭代器 = 迭代器.__iter__() --> 迭代器 = iter(可迭代的)
range(1,11,2) ps:是可迭代你的不是迭代器
其他:
dir([]) :查看一个变量拥有的方法
callable(变量名) :判断是否可以被调用,调用就是向函数调用之类的
help(类型) :不需要打印,他会自己打印,返回和类型相关的所有方法和方法用法,和源码差不多
__import__() --> import :导入一个模块
文件:
open() :writ(写)adle(能不能)
open() :read(读)adle(能不能)
内存相关:
hash(): 如果输出了代表可哈希,报错则不可哈希
对于可以hash的数据相同的值的哈希值在一次的程序执行过程中是不变的
id() :内存地址
输入和输出:
input()
print() :
print(‘123‘,end=‘‘):end默认参数是回车,默认不是回车时就不会换行
print(‘1,2,3‘,sep‘|‘)指定输出多个值之间的分隔符
f = open(‘文件名‘,‘w‘)
print(‘aaa‘,file=f)
f.close
不会直接在控制台输出,会输出到文件
打印进度条:
for i in range(0,101,2):
time.sleep(0.1)
char_num = i//2
per_str = ‘ %s%%:%s ‘ % (i,‘*‘*char_num) if i == 100 else ‘ %s%% : %s‘%(i,‘*‘*char_num)
print(per_str,end=‘‘,flush = True)
progress Bar 模块: 打印进度条的
字符串类型代码的执行:
都可以执行一段字符串类型的代码:
exec():
适合处理简单的流程控制
没有返回值
eval():
有结果的简单计算
有返回值,只能用在你明确知道你要执行的代码时什么,
compile():
将字符串类型的代码编译,代码对象通过exec和eval实现
single:
交互类的,执行还是使用exec
复数 -- complex:
实数 : 有理数:
有限循环小数之类的
无理数:
无限不循环小数
虚数:
虚无缥缈的数
几j,比如12j
5+12j == 复合的数 == 复数
浮点数:
小数:
浮点数包括:
有限循环小数
无限循环小数
无限不循环小数
354.123 = 3.54123*2 = 35.4123*10
小数特别长的时候就不准了,因为10进制转2进制时出现偏差
进制转换:
bin():二进制
0b
oct():八进制
0o
hex():十六进制
0x
数学运算:
abs():
求绝对值
divmod():
div:除法
moed:取余
接收两个参数,返回值也是两个数,第一个数是删,第二个数是余数
round():
精确值用的,如(3.1415926,2)结果:3.14
pow():
求幂运算的,传入两个参数(2,3)
幂运算后取余(2,3,3)
sum():求和
必须给一个可迭代的
后边可以传一个start参数,不能用关键字传参,前边求和以后加上后边的值
min():计算最小值
不一定可迭代,可以指定关键字参数key=abs,key可根据传入的方法进行对比
max():计算最大值
以上是关于python_10的主要内容,如果未能解决你的问题,请参考以下文章
Android 逆向使用 Python 解析 ELF 文件 ( Capstone 反汇编 ELF 文件中的机器码数据 | 创建反汇编解析器实例对象 | 设置汇编解析器显示细节 )(代码片段