python 小小小进阶

函数参数类型

位置参数,关键字参数,默认参数,可变参数

位置参数:

传参时,按照实参的传递顺序,按照形参定义的顺序进行传递的传参方式

关键字参数:

穿参时, 忽略形参的顺序,按照形参等于实参的形式进行传参的传参方式 (传参时,关键字参数必须在位置参数的后面

默认参数:

在定义参数的时候,给形参一个默认的值,当调用的时候,如果不给有默认值的参数传参,就会采用默认的值

如果给有默认值的参数穿参,函数就会使用重新赋的值,当某个值变化频率较小的时候,就可以使用默认参数 ( 默认参数一定要写在形参后面

可变参数

如果函数中的参数过多,我们定义起来非常的麻烦,调用起来也非常的麻烦,因此 python给我们提供了可变参数类型。能处理比当初声明时更多的参数,会将传入的参数变成元组或键值对

*args元组参数——接收多个位置参数

  def score(*nums): sum=0 
    for 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= )