python 小小小进阶
函数参数类型
位置参数,关键字参数,默认参数,可变参数
位置参数:
传参时,按照实参的传递顺序,按照形参定义的顺序进行传递的传参方式
关键字参数:
穿参时, 忽略形参的顺序,按照形参等于实参的形式进行传参的传参方式 (传参时,关键字参数必须在位置参数的后面
默认参数:
在定义参数的时候,给形参一个默认的值,当调用的时候,如果不给有默认值的参数传参,就会采用默认的值
如果给有默认值的参数穿参,函数就会使用重新赋的值,当某个值变化频率较小的时候,就可以使用默认参数 ( 默认参数一定要写在形参后面
可变参数
如果函数中的参数过多,我们定义起来非常的麻烦,调用起来也非常的麻烦,因此 python给我们提供了可变参数类型。能处理比当初声明时更多的参数,会将传入的参数变成元组或键值对*args元组参数——接收多个位置参数
def score(*nums): sum=0for num in nums: sum=sum+num
return sum
#把实际分数存放在元组里或列表里
nums1=(100, 98, 76, 89, 90) print(score(*nums1))#必须加*打散元组,不然报错
*具有打散元组或者列表的作用
**kwargs字典参数——接收多个关键字参数
def score(**kwargs): sum=0 for key in kwargs: sum=sum+kwargs[key] return sum dic={'zs':100,'ls':98} print(score(**dic))
**具有打散字典的作用
列表生成式、迭代器、生成器、yield函数
什么是迭代?
一件事情重复很多次,比如 for 循环
什么是可迭代对象?
for x in lis,tuple,str,dic[key],dic[values] 以上lis,tuple,str,dic[key],dic[values]都可以称为可迭代对象
那么专业点来说,什么是可迭代对象:具有iter()方法的,调用iter()方法,就会返回一个迭代器
迭代器有next()方法,在调用这个迭代器的next()方法时,迭代器就回返回它的下一个值,
当迭代器中没有值可 以返回了,就回抛出一个名为StopIteration的异常,停止迭代
list=[1,2,3,4] # 创建迭代器对象 it = iter(list) # 输出迭代器的下一个元素 print (next(it)) #1 print (next(it)) #2 print (next(it)) #3 print (next(it)) #4 print (next(it))#StopIteration
import sys # 引入 sys 模块 list = [1, 2, 3, 4] it = iter(list) # 创建迭代器对象 while True: try: print(next(it),end=' ') except StopIteration: sys.exit()
#直接用for循环列表 list=[1,2,3,4]
for x in list: print (x, end= )