python_0基础开始_day11
程序员文章站
2022-12-21 09:52:09
第十一节 一,函数名的第一类对象 函数名当作值,赋值给变量 print(函数名) 查看看书的内存地址 print(函数名) 查看看书的内存地址 函数名可以当作容器中的元素 函数名可以当作函数的参数 函数名可以当作函数的返回值 二,f-strings字符串格式化 f"{变量名}" F"{变量名}" f ......
一,函数名的第一类对象
-
函数名当作值,赋值给变量
-
print(函数名) 查看看书的内存地址
-
-
函数名可以当作容器中的元素
lis = []
dic = {}
def func():
print(11)
def foo():
print(22)
lst.append(func)
lst.append(foo)
print(lst)# 输出后的是内存地址
msg = """
1 登录
2 注册
3 主页
"""
choose = input(msg) # 1
if choose.isdecimal():
if dic.get(choose):
dic[choose]()
else:
print("请正确输入!")
# 用字典存储大量数据,通过字符串显示每个数字代表的功能,在字典中找到并读取该值 -
函数名可以当作函数的参数
def func(a):
print(111)
a()
def foo():
print(222)
func(foo) -
函数名可以当作函数的返回值
def func():
def foo():
print(111)
return foo
func()() # foo()
二,f-strings字符串格式化
-
-
f"{变量名}"
-
f"{变量名}"
-
f"""{变量名}"""
-
f"{input()}"
-
f"{3 if 3 > 2 else 2}"
-
f"{list[索引]}"
-
f"{dict[keys]}"
-
三,迭代器
迭代器是基于上一次停留的位置,进行取值
-
可迭代对象
-
具有iter()方法就是可迭代对象
list,tuple,str,srt,dict # 取值方式直接看
# 只有具有.__iter__()方法就是一个可迭代对象 -
-
迭代器
-
具有.iter()和.next()两个方法才是迭代器
-
迭代器的优点:
-
惰性机制——节省空间。
-
-
迭代器的缺点:
-
不能直接查看值,迭代器看到的是一个迭代器的内存地址
-
一次性,用完就没了
-
不能逆行(后退)
-
-
空间换时间:容器存储大量的元素,取值时间短,但是容器占用空间比较大
-
时间换空间:迭代器就是节省了空间,但是取值时间较长。
-
-
python3:
-
iter()和iter()都有;next()和next()都有
-
-
python2:
-
只有__iter__(),next()
-
-
# python3:iter()和__iter__()都有;next()和__next__()都有
# python2:只有iter(),next()
# 具有.__iter__()和.__next__()两个方法才是迭代器
lis = [1,2,3,4,5,6]
l = lis.__iter__()# 将可迭代对象转换成迭代器
l = iter(lis) # iter 和__iter__是一样的
l.__iter__()#迭代器指定__iter__()还是原来的迭代器
# for 循环的本质:
while true:
try:
print(l.__next__())
except stopiteration:
break -
-
上一篇: ES6常用的新特性