天佑被禁播,小骆驼蓝迪,联通号码查询
#假设python没有len函数,请你用代码算出给定任意字符串、列表等的长度,务必请自己编写一下,参考如下: s1 = 'asdfghjkl' len = 0 for i in s1: #当要遍历一个可迭代对象时经常用for len += 1 print(len) #9 len = 0 l1 = [1,2,3,4,5,6,7] for i in l1: len += 1 print(len) #7
这样写,重复代码太多且代码的可读性差
对上放代码进行改进,定义一个函数:
def my_len(s): len = 0 for i in s: len += 1 print(len) #测字符串/列表的长度: s1 = 'asdfghjkl' my_len(s1) #9 l1 = [1,2,3,4,5,6,7] my_len(l1) #7
how:函数以def定义后再加一个空格再加上函数名(取的函数名最好具有描述性)再加上一个英文冒号,示例如下:
def hanshu(): #def 函数名(): pass # 函数主题 return 返回值 # return 返回值,可有可无
函数的传参:让函数封装的这个功能变为动态可传入的(盘活)。参数分为实参和形参
实参:函数的执行时传入的参数
形参:函数的定义时接受的参数
def func(a): #a:形参,定义函数时定义的参数,若定义了形参,则调用函数时必须向函数传入 实参。(特殊情况后文再说) a += 1 return a print(func(6)) #调用函数 6:传入的实参。 >>>7
实参角度:
位置参数:按照实参位置参数与形参的对应顺序(从左到右)依次传入。
def func(a,b): c = a / b return c print(func(10,2)) >>>5.0 #只要运算符中有除法,得出来的答案都是浮点数
关键字参数:当形参过多时,需要将实参传入的顺序记住,容易出错。关键字参数无需顺序
def func(name,sex,hight,weight): c = '我叫{},性别{},体重是{},身高{}'.formt(name,sex,weight,hight) return r print(func('山就在那儿','男','60kg','1.7m')) #python默认从左至右将实参传给形参,当形参过多时容易出错,但可以使用关键字参数传入。 >>>我叫山就在那儿,性别男,体重是1.7m,身高60kg print(func(name='山就在那儿',sex='男',weight='60kg',hight='1.7m')) >>>我叫山就在那儿,性别男,体重是60kg,身高1.7m
混合传参:位置参数一定要放在关键字参数前方,关键字参数一定要放在位置参数后面。否则会报错。
def func(name,sex,hight,weight): c = '我叫{},性别{},体重是{},身高{}'.formt(name,sex,weight,hight) return r print(func('山就在那儿','男',weight='60kg',hight='1.7m')) >>>我叫山就在那儿,性别男,体重是60kg,身高1.7m
知识点补充:三元运算符:简单的if-else语句可以简化为三元运算符。
#判断a,b的大小 a = 10 b = 11 c = a if a>b else b print(c) 11 #c = a if a>b else b 等同于: if a>b: c = a else: c = b
#定义一个函数:能为函数传入两个参数,打印出两个参数中最大的一个参数 def complie(a,b): c = a if a>b else b return c print(complie(11,10)) >>>11 #编码进阶: def complie(a,b): return a if a>b else b #return的为c,因此可以将两个c合并,并省去参数c print(complie(11,10))
形参角度:
位置参数:形参位置参数必须与实参一一对应,与实参位置参数一样,只是观察角度不同,不再多叙述。
默认参数(默认值参数):若有位置参数,默认参数一定要在位置参数后面,默认参数可以被更改。可参考open函数的默认参数。
实参与形参必须一一对应,不可一对多或者多对一,否则会报错。建议读者自测一遍。
def func(a,b,c=10): d = (a + b)/c return d print(func(9,1)) >>>1 print(func(5,3,c=2)) >>>4 print(func(5,3,2)) #实参传入默认参数时关键字可以不写,但不推荐此方法。 >>>4
还有两种形参类型,请看明天的python基础学习day10
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python爬虫:Request Payload和Form Data的简单区别说明
浅谈Python中threading join和setDaemon用法及区别说明
Python3-异步进程回调函数(callback())介绍
python继承threading.Thread实现有返回值的子类实例
Python中使用threading.Event协调线程的运行详解
网友评论