三元运算
z = a if a > b else b
函数的初识:
def 函数名():
函数体
1 ll = ‘你好,China‘ 2 def my_lenth(): # 用来定义函数 3 4 # 函数体 5 count = 0 6 for i in ll: 7 count += 1 8 print(count) 9 10 11 my_lenth() #调用函数
函数就是封装一个功能
函数是以功能为导向的
def:关键字,用来声明一个函数
函数名:函数名的书写规则与变量一样
def与函数名之间只有一个空格
函数的执行:
函数名()
用来调用函数
函数的返回值:
尽量不要再函数体中使用print()
return:
在函数中遇到return就结束函数,后面的函数体就不执行。
将值返回给函数的调用者
#无 return
#return count 返回参数
#return None 返回None,不常用
#return 一个值 ,该值是什么,就返回该值给函数的调用者
#return 多个值 ,将多个值组合成一个元组,返回给函数的调用者
在函数调用者的括号里的参数叫做实际参数(实参),在函数里的参数称之为形式参数(形参)
实参角度:
>按位置传参(按顺序一一对应)
1 def compare(a,b): 2 if a > b: 3 return a 4 elif a == b: 5 return ("一样大") 6 else: 7 return b 8 9 # return a if a > b else b 10 #三元运算 11 s = compare(6,6) 12 print(s)
>按关键字传参(不按顺序,一一对应)
1 def compare(a,b): 2 if a > b: 3 return a 4 elif a == b: 5 return ("一样大") 6 else: 7 return b 8 9 # return a if a > b else b 10 #三元运算 11 s = compare(b = 6,a = 6) 12 print(s)
>混合传参(既有位置,又有关键字)
1 def test1(a,b,c,d,e,f): 2 print(a) 3 print(b) 4 print(c) 5 print(d) 6 print(e) 7 print(f) 8 9 test1(4,5,d=9,c=0,f=9,e=44)
对于混合传参来说关键字参数永远要在最后面,否则会报错
SyntaxError: positional argument follows keyword argument
形参角度:
>按位置传参(按顺序一一对应)
>默认参数(传参则覆盖,不传则默认)
1 def info_entry(user_name,sex=‘man‘): 2 with open(‘a‘,mode=‘a‘,encoding=‘UTF-8‘) as f: 3 f.write(‘{_username} {_sex}\n‘.format(_username = user_name, 4 _sex = sex)) 5 6 7 while True: 8 user_name = input("请输入你的姓名(以1开头为男性):") 9 if user_name.startswith(‘1‘): 10 user_name = user_name[1:] 11 info_entry(user_name) 12 else: 13 info_entry(user_name,sex=‘woman‘)
默认参数永远要在位置参数的后面
>动态传参