python 12
Posted yzm1017
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 12相关的知识,希望对你有一定的参考价值。
1. 生成器 yeild
生成器的本质就是一个迭代器
迭代器和生成器的区别: 迭代器是Python中内置的一种节省空间的工具,是python自带的;生成器是程序员自己写的。
def func():
if 3>2:
yield "你好" # 停止,会记录执行到的位置
if 4>2:
yield "我好"
yield "大家好"
g = func() # 产生一个生成器
print(g.__next__())
print(g.__next__())
print(g.__next__()) # 可写成 print(next(g))
# 可循环打印
for i in g:
print(i)
定义一个生成器:
基于函数,
函数体中存在yield就是一个生成器
函数名() 就产生一个生成器
生成器:
节省空间 -- 惰性机制
不能逆行
一次性
一个next对应一个yield 可以多写yiled,返回多次
#生成器应用场景:
def func():
lst = [1,3,5,7,9]
yield from lst # from 将一个可迭代对象的元素逐个返回
g = func()
for i in g:
print(i) # 1 3 5 7 9
def func():
lst = [1,2,3,4,5,6,7,8,9]
yield from lst
count = 9
while count:
yield count # yield能够临时停止for、while循环
count -= 1
g = func()
for i in g:
print(i)
2. 推导式
2.1 列表推导式:
#[变量(加工后的变量) for循环 加工方式]
print([i for i in range(20) if i%2 ==0])
2.2 生成器推导式:
# (变量(加工后的变量) for循环 加工条件)
g = (i for i in range(50) if i % 2 == 1)
for i in g:
print(i)
2.3 字典推导式:
# 键:值 for循环 加工条件
print(i:i+1 for i in range(10) if i % 2 == 0)
2.4 集合推导式:
# 变量(加工后的变量) for循环 加工条件
print(i for i in range(10) if i % 2 == 0)
3. 内置函数(一)
eval():执行字符串类型的代码,并返回最终结果
exec():执行字符串类型的代码
s = """
for i in range(10):
print(i)
"""
print(exec(s)) # 循环打印
hash():获取一个对象(可哈希对象:int,str,Bool,tuple)的哈希值。
help():函数用于查看函数或模块用途的详细说明。
callable():函数用于检查一个对象是否是可调用的。
int:函数用于将一个字符串或数字转换为整型。
float:函数用于将整数和字符串转换成浮点数。
complex():函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数.
bin:将十进制转换成二进制并返回。
oct:将十进制转化成八进制字符串并返回。
hex:将十进制转化成十六进制字符串并返回。
divmod():计算除数与被除数的结果,返回一个包含商和余数的元组 (a // b, a % b)。
round(5.323,2):保留浮点数的小数位数,默认保留整数。
pow():求x**y次幂。(三个参数为x**y的结果对z取余)
bytes:用于不同编码之间的转化。
ord():输入字符找当前字符编码的位置
chr:输入当前编码的位置数字找出其对应的字符
repr:返回一个对象的string形式(原形毕露)。
all:可迭代对象中,全都是True才是True
any:可迭代对象中,有一个True 就是True
globals():查看全局空间的变量,以字典形式体现
local():查看当前空间的变量
以上是关于python 12的主要内容,如果未能解决你的问题,请参考以下文章