2019-02-18 16:12:57
时隔半个多月,又将Python复习提上了议程。。。。
- 迭代器与生成器
之前的学习过程中没有理解清楚迭代器的含义及原理,特别是 yield 的用法。今天算是弄明白了。
迭代器就是生成迭代序列。用 __iter__()类初始化,__next__()类遍历。
Ls = [1,2,3] it = iter(Ls) while True: try: print(next(it)) except StopIteration: sys.exit()
用了yield的函数就被成为生成器。相当于再原来的过程中多出一步:将需要返回的值抛出,然后继续执行
""" Created on Mon Feb 18 16:21:34 2019 @author: 13746 """ import sys def fyield(n): a,b,count = 0,1,0 while True: if (count>n): return else: yield a a,b=b,a+b count+=1 f = fyield(10) while True: try: print(next(f),end=‘、‘) except StopIteration: sys.exit()
2. 函数
python的函数与C差不多,不同之处也不少。变量是函数的重要组成部分,变量是没有类型的,实质是指针。
在 python 中,strings, tuples, 和 numbers 是不可更改的对象,而 list,dict 等则是可以修改的对象。
在传递的过程中有 可变对象和不可辨对象,类似于C++中的引用和值传递
参数
-
-
- 必须参数
- 关键字参数
- 默认参数
- 不定长参数 def fun(a,b,c,*vartuple,**vardict) 一个星号表示以元组形式导入,俩个以字典形式导入;星号还可以单独出现, *号后面的参数需要以关键字的形式导入,def f(a,b,*,c) f(1,2,,c=3)
-
匿名函数
使用lambda创建匿名函数
# lambda [arg1,arg2,arg3...] expression# 可写函数说明 sum = lambda arg1, arg2: arg1 + arg2 # 调用sum函数 print ("相加后的值为 : ", sum( 10, 20 )) print ("相加后的值为 : ", sum( 20, 20 ))
原文地址:https://www.cnblogs.com/zero27315/p/10397184.html
时间: 2024-10-07 04:17:26