python 06 8/28-8/30


函数的返回值,使用return返回数据,可以同时返回多个数据,将会以元组的形式返回到函数的调用处。return 具有返回数据和中止程序的作用!
return 后不加任何数据则返回None ,判定为False。
关于【组包与解包】:
组包:python解释器自动将多个数据组装到一个容器中
解包:将容器中的多个数据拆出来
1.
# 组包: 解释器把1,2,3自动组包成一个元组,然后赋值给a,a的类型就是元组类型的
  a = 1,2,3 # 相当于 a = (1,2,3)
  print(a) # (1, 2, 3)
  print(type(a)) # <class 'tuple'>

#解包: 解释器会自动对元组(1,2)进行 解包,然后把1赋值给m,把2赋值给n
  m,n,k = (1,2,3) # m=1,n=2,k=3
  print(m) # 1
  print(n) # 2
  print(k) # 3
函数使用参数可以使函数变得更加通用,增加扩展性。参数的顺序有讲究,定义函数时,【形参顺序】
def func(位置参数,可变位置参数,默认参数,可变关键字参数):
  pass
func(*args,**kwargs) 与 func(args,kwargs)返回的数据不同,* 或者**具有解包的作用,*用来将普通参数元组解开,**用来将关键字参数字典解开。
**kwargs只能在调用函数时使用。
1.
def func1(*args ,**kwargs):
  print(args) # (10, 20) # ( (10, 20) , {'n': 30, 'm': 40})
  print(kwargs) # {'n': 30, 'm': 40}


def func2(* args ,** kwargs):

  #print(args) # (10, 20)
  #print(kwargs) # {'n': 30, 'm': 40}

  #解包:* args -> *(10,20)->10,20
  #解包:** kwargs -> **{'n': 30, 'm': 40}-> n=30,m=40
  #func1(args,kwargs) # func1( (10, 20) , {'n': 30, 'm': 40}) 结果为:((10, 20), {'n': 30, 'm': 40}) {}

  func1(*args,**kwargs) # func1( 10, 20 , n=30,m=40) 结果为:(10, 20) {'n': 30, 'm': 40}

func2(10,20,n=30,m=40) # func2((10,20), {'n': 30, 'm': 40})
2.
a = range(8)
print(*a) # 解包 0 1 2 3 4 5 6 7
b = [1,2,3]
print(*b) #1 2 3


局部变量,与全局变量,直接在函数体内定义(局部变量)与函数体外定义(全局变量)的相同的变量,则局部变量会将全局变量覆盖,且只能
在该函数体内使用该变量。若想在函数体内修改全局变量,则在函数体内用global声明该变量 ,声明格式为:global 变量名。
关于【引用】,分可变类型与不变类型,且python中参数传递的方式是【址传递方式】,传递数据,传递的是数据对应的地址。
关于引用的详细,参考另一篇专门关于引用理解的随笔。
【列表生成式】 定义格式 list1 = [i for i in rang(5)],list2 = [i for i in range(5) if i not(i % 2)],
list3 = [(i,j) for i in range(5) for j in range(5)]。
【匿名函数】 定义格式: lambda a,b: a + b , a,b为形参,返回的数据为a+b。匿名函数只能用来执行一些简单的操作。
当对元素为字典的列表进行排序时,使用匿名函数,很方便。
1.
stus = [
{"name": "zhangsan", "age": 18},
{"name": "lisi", "age": 19},
{"name": "wangwu", "age": 17}
]
#对该列表按照age进行排序
#第一种方法
def ke(x):
  return x['age']
stus.sort(key = ke)
print(stus)
#第二种方法
stus.sort(key = lambda x : x["age"])
print(stus)
【递归函数】 在函数内自己调用自己的函数(效率低)。
开发递归函数的条件:
1.在函数内部自己调用自己 (保证函数可以跳进去)
2.给递归设置一个中止的条件(保证函数可以跳出去)
除了在最近写的随笔外还有一些易错点:
1.
list2 =[] # 空值默认为False
for i in list2 : # 因为list2为空 所以根本无法遍历list2
  print(type(i["姓名"])) # 这个pritn()语句无法执行

for i in list2:
  print("进入")
else:
  print("未进入")  # 未进入

if not list2:
  print("yes") #yes
2.如果写int("1.0")就会错误,因为python假设需要进行int转型的字符串仅仅包含数字,这时候用int(float("1.0"))就可以完成转化了。

转载于:https://www.cnblogs.com/wangjiepy/p/9561434.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值