生成器是迭代器的一种
面试小重点:
""""
函数中如果存在yield关键字,在调用函数之前,还是一个普通函数,一旦调用函数,就把函数变成了生成器(迭代器)
****************
生成器一定是迭代器
迭代器不一定是生成器
***************
"""
res=index() # 此时就是生成器,并不会运行函数
ret=res.__next__() # 代码遇到yield关键字,会停住,夯住
ret=res.__next__() # 再次执行__next__,代码从上一次被停住的位置继续往下执行
ret=res.__next__()
# print(ret)
yield传值:
第一次取值可以用res.sent(None)代替
yield与return的区别
生成器的表达式
笔试题:
前面的只会屯着但不运行,直到循环到最后一次才会一起执行
print(abs(10))
print(abs(-10)) # 绝对值
l = [1, 2, 3, 0]
print(all(l)) # True
print(any(l))
arr = range(10)
myslice = slice(5) # 设置截取5个元素的切片
"""
100条数据 10条 10页
99条 10 10页
101条 101 11
"""
page, more=divmod(100, 10)
page, more=divmod(99, 10)
page, more=divmod(2005, 10)
if more:
page += 1
print(page)
# res="""print('hello world')""" #
res="""
# 这是注释
for i in range(10):
print(i)
""" #
# eval(res) # 识别简单的python代码
# exec(res)
# if type(123) is int:
# print('123')
# print(type('123') is int) # 判断数据类型的
# print(isinstance('123', int))
# print(isinstance(123, int))
# print(isinstance('123', str))
# print(isinstance([1,2,3,4], list))
# print(isinstance({'a':1}, dict))
# print(chr(65))
# print(chr(97)) # 根据ASCII码表,填入对应的十进制,返回对应的字符
# print(ord('A'))
# print(ord('z')) # 根据ASCII码表,填入对应的字符,返回对应的十进制
# l = [10, 20, 30 ,40, 50]
# print(sum(l)) # 求和
# print(pow(4, 3)) # 4 ** 3
# print(pow(2, 3)) # 4 ** 3
s = '你好啊'
# res=s.encode('utf-8')
# print(res)
# ret = res.decode('utf-8')
# print(ret)
# res=bytes(s, 'utf-8')
# print(res)
# print(str(res, 'utf-8'))
def index():
print('from index')
# print(callable(index)) # 查看是否能够被调用
'''健壮性'''
# res=callable(index)
# if res:
# index()
# else:
# ''''''
# def func(name, age):
# print(locals()) # {'name': 1, 'age': 2}
# func(1, 2)
# 复数,而不是负数
# 1+2j
# 四舍五入
print(round(3.4))
print(round(3.5))
print(round(3.6))
标签:index,10,res,生成器,123,print From: https://www.cnblogs.com/whxx/p/17189345.html