python-函数
# --*--code --*--
# @time: 2021/11/1:21:15
# @author:
# @file:demo5.py
# 函数
# 步骤
# 1.封装函数 独立功能
# 2.调用函数
# 3.提高代码效率
语法:
'''
def 函数名():
逻辑代码a
'''
两个数字相加
def sum(a,b): # a = int(input('请输入数字a:')) # b = int(input('请输入数字b:')) sum = a+b print('a+b=%s'%sum) sum(1,4) def sum(): a = int(input('请输入数字a:')) b = int(input('请输入数字b:')) sum = a+b print('a+b=%s'%sum) sum()
拓展术语: 实参 形参
函数里面还可以有返回值 先运行函数,但是函数不会执行
def sum(a,b): c = a+b return c a = sum(3,5) print(a)
空函数
def empty(): pass
函数中的参数: 必须参数,关键字参数,默认参数,不定长参
必须参数:必须要传,位置,个数
def sum(a,b): return a+b sum(1,3)
关键字参数 命名参数 顺序可以不同
def person1(name, age): return '我是{},今年{}岁'.format(name, age) d = person1(age='23', name='xx') print(d) # 默认参数 默认参数在后面 def person1(age,name='张三'): return '我是{},今年{}岁'.format(name, age) d = person1(age='23') print(d)
不定长参数 在参数前加 * 或 **
* 元组 传进的参数放在元组中 ** 字典 传进的参数放在字典中
def a1(*args): print(args) a =a1('rrr',22,'3223') # *后面,参数要带上命名 def a2(name,age,*,sex): return '我是{},今年{}岁,姓名{}'.format(name,age,sex) c =a2('续租','100',sex='dd') print(c) # ** def test1(**kwargs): print(kwargs) a=test1(a=1,b=3,c=5) print(a)
执行结果:
('rrr', 22, '3223')
我是续租,今年100岁,姓名dd
{'a': 1, 'b': 3, 'c': 5}
# 在函数中参数 一定是*args在前 **kwargs在后 def test2(*args,**kwargs): print(args) print(kwargs) a=test2('xx',1,3,name='xuzu',age=11) print(a) def test2(*args,**kwargs): print(*args) print(kwargs) a=test2('xx',1,3,name='xuzu',age=11) print(a)
执行结果:
('xx', 1, 3) {'name': 'xuzu', 'age': 11} None xx 1 3 {'name': 'xuzu', 'age': 11} None
函数嵌套
def test1(): print('--'*50) def test2(): print('*'*50) print('+' * 50) test1() print('='*50) test2()
执行结果:
---------------------------------------------------------------------------------------------------- ================================================== ************************************************** ++++++++++++++++++++++++++++++++++++++++++++++++++
匿名函数 lambda
语法:lambda 参数,参数: 表达式
本身自带返回,不需要返回
sum = lambda a,b:a+b print(sum(1,3))
执行结果:
4
三目运算 if语法的简写 写在一行
判断两个数字大小
语法: if 判断条件 满足条件的内容 else 不满足条件的内容
x = int(input('x=')) y = int(input('y=')) print('打印第一个数字{}'.format(x)) if x>y else print('打印第二个数字{}'.format(y))
执行结果:
x=5 y=8 打印第二个数字8
推导式 for循环
列表推导式:[表达式 : for xx in range()]
字典推导式:{表达式:表达式 : for xx in range()}
for xx in range(5): print(xx) d = [xx for xx in range(5)] print(d) d = {xx:xx+1 for xx in range(5)} print(d)
执行结果:
0 1 2 3 4 [0, 1, 2, 3, 4] {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}