展开
拓展 关闭
订阅号推广码
GitHub
视频
公告栏 关闭

函数

  • 基础使用
# 定义函数
def title():
    print("123")
    
# 调用函数
title()
  • 参数
def yz(r):
    print(2 * 3.14 * r)

# 调用函数并传值
yz(10)

a = int(input("请输入半径:"))
yz(a)

"""多个参数,两个数相加"""
def jia(a, b):
    print(f"{a}+{b}={a+b}")

# 调用函数
jia(5, 10)

while True:
    a = int(input("请输入第一个数:"))
    b = int(input("请输入第二个数:"))
    jia(a, b)
  • 关键字参数
def jisuan(a, op, b):
    if op == "+":
        print(f"{a}+{b}={a+b}")
    elif op == "-":
        print(f"{a}-{b}={a - b}")
    elif op == "*":
        print(f"{a}*{b}={a * b}")
    elif op == "/":
        print(f"{a}/{b}={a / b}")
    else:
        print("运算符输入错误(+,-,*,/)")

# 调用函数,使用位置参数
jisuan(10, "-", 20)
# 调用函数,使用关键字参数,顺序可以随意
jisuan(a=20, op="/", b=10)
jisuan(op="/", b=10, a=20)
# 组合参数(位置参数+关键字参数)位置参数在前面,关键字参数在后面
jisuan(20, b=10, op="/")
  • 默认值参数
def jisuan(a, b, op="+"):
    if op == "+":
        print(f"{a}+{b}={a+b}")
    elif op == "-":
        print(f"{a}-{b}={a - b}")
    elif op == "*":
        print(f"{a}*{b}={a * b}")
    elif op == "/":
        print(f"{a}/{b}={a / b}")
    else:
        print("运算符输入错误(+,-,*,/)")

# 调用函数,默认值参数可以不传
jisuan(10, 20)  
# 调用函数,覆盖默认值
jisuan(10, 20, "-") 
  • 案例1
"""
def abc(*n)
会将所有参数,全部封装成一个元组,
不支持关键字传参
"""
# 声明一个函数,参数接受姓名
def abc(*n):
    print(n)

abc("张三")
abc("张三", "李四")
abc("张三", "李四", 30)
abc({"name": "zz", "age": 20})
  • 执行结果
点击查看详情
('张三',)
('张三', '李四')
('张三', '李四', 30)
({'name': 'zz', 'age': 20},)
  • 案例2
"""
def abc(**n):
支持任意多个关键字传参,参数被封装成字典
其他方式的参数不支持
"""
def abc(**n):
    print(n)

abc(a=10, b=20, name="张三")
  • 执行结果
点击查看详情
{'a': 10, 'b': 20, 'name': '张三'}
  • 案例3
"""
打散列表传递参数
abc(*lst) 
实参,如果传递的是列表,在前面加上*,就可以打散列表 
"""
def abc(*n):
    print(n)

lst = [1, 3, 34, 4, 5, 6]
abc(*lst)  # 打散列表,变成位置参数
  • 执行结果
点击查看详情
(1, 3, 34, 4, 5, 6)
  • 案例4
"""
打散字典
调用的时候,传递实参的前面加**
abc(**dic)  # 将字典打散,作为关键字参数传递
"""
def abc(**n):
    print(n)
    
dic = {"name": "zs", "age": 20, "gender": "男"}
abc(**dic)  
  • 执行结果
点击查看详情
{'name': 'zs', 'age': 20, 'gender': '男'}
  • 案例5
"""
在调用的时候
*l 相当实参  a,b,c  顺序参数
**l 相当实参  e=10,f=20  位置参数
abc(*l,**d): 可以传递任意参数
"""
def abc(*l, **d):
    print(l)
    print(d)

abc(10, 20, a=30, b=40)  # 位置参数必须在关键字参数的前面
  • 执行结果
点击查看代码
(10, 20)
{'a': 30, 'b': 40}
  • 返回值
"""函数的返回值"""
def abc(a, b):
    return a + b

b = abc(3, 10)
print(b)

"""返回多个值"""
def abc():
    return 1,3,4,5

b = abc()  # b存放的是一个元组
print(type(b),b)

"""return 会中断函数,直接返回"""
def abc(b):
    for i in range(1, b):
        if i % 3 == 0:
            return i  # 中断函数
    b = b + 5
    return b

a = abc(5)
print(a)
  • 执行结果
点击查看详情
13
<class 'tuple'> (1, 3, 4, 5)
3
  • 数学运算函数
a = 10/3
print(round(a, 2))  # 四舍五入

a = pow(2, 8)  # 求幂
print(a)
a = 2 ** 4  # 和 pow(2,4) 一样的效果
print(a)

lst = [1, 2, 3, 4, 5]
a = sum(lst)  # 对列表求和
b = min(lst)  # 求列表中的最小值
c = max(lst)  # 求最大值
print("sum=", a)
print("min=", b)
print("max=", c)
posted @ 2024-03-26 16:51  DogLeftover  阅读(3)  评论(0编辑  收藏  举报