# 函数(以最少的代码写出最高级的东西)
# 一 函数的定义
def date(key):
print("今天星期{}".format(key))
date("星期一")
# 定义一个函数(不调用没有任何意义)
"""
定义函数语法:
def 函数名():
函数体
调用函数:
函数名()
"""
# 无参函数
a = 1
def name():
if a == 1:
print("现在a的值是1")
else:
print("a的值是其他")
name()
# 有参函数
def name(a):
if a == 1:
print("现在a的值是1")
else:
print("a的值是{}".format(a))
name(1) #实参可以变换
# 函数默认值None(函数不一定需要返回值)
def spk(a):
b = a - 10
return b
print(spk(11))
print(spk(11)+1)
# 二 作用域
count = 1 #全局变量
def num():
b =1 #局部变量
b += 10
print(count+1)
print(b)
num()
print(count)
# 三 函数的嵌套
def num():
a = 1
return a+1
def spk(nums):
if nums == "a":
print(num()+1)
spk("a")
def add(a,b):
return a+b
def div(a,b):
return a/b
def get():
c = add(1,2)
print(c)
d = div(c,2)
print(d)
get()
# 四 五种参数
# 必须参数
def spk(a):
print(a)
spk(1)
def test(a,b=1,c=2):
print("这是参数a:",a)
print("这是参数b:",b)
print("这是参数c:",c)
# 默认参数,必须放在最后面
def spk(a,b=2):
print(a)
print(b)
spk(1,[1,2,3])
# 关键字参数,解决传值顺序
def spk(a,b,c="李四", d=2):
print(a)
print(b)
print(c)
print(d)
spk(1, d="李四", c="张三", b="王五")
# 可变参数
def spk(a,b,*args):
print("a的值:",a)
print("b的值:",b)
print(args[0])
spk(1,2,3,4,5,6,7)
# 关键字参数传多个
def spk(a,b,**kwargs):
print("a的值:",a)
print("b的值:",b)
print(kwargs)
spk(1,2,d=1,f=2,c=3)
# 无线传参
def pops(array, b=-1):
return array[b]
list1 = [1, 2, 3]
print(pops(list1,2))
# 四个数取和
def spk(*args):
return args[0] + args[1] + args[2] + args[3]
print(spk(1,2,3,4))
def spk(*args, **kwargs):
print(args)
print(kwargs["a"])
# 递归函数
def num(n):
if n == 1:
return 1
else:
return num(n-1)+n
print(num(100)) #递归函数最大值为998
# 匿名函数
def add(a,b):
return a+b
print(add(1,2))
'''
匿名函数语法:
lambda 函数体
'''
art = lambda a, b:a+b
print(art(1,2))
# 求最大值
def num(*args):
if args[0] > args[1]:
if args[0] > args[2]:
print("三个数最大值是:",args[0])
else:
print("三个数最大值是:",args[2])
else:
if args[1] > args[2]:
print("三个数最大值是:", args[1])
else:
print("三个数最大值是:", args[2])
x1 = int(input("请输入第一个值:"))
x2 = int(input("请输入第一个值:"))
x3 = int(input("请输入第一个值:"))
num(x1,x2,x3)
# 判断三角形
def div(a,b,c):
if a+b>c and a+c>b and b+c>a:
if a == b == c:
print("这是等边三角形")
elif (a**2 + b**2 == c**2 or
b**2 + c**2 == a**2 or a**2 + c**2 == b**2):
print("这是直角三角形")
elif a == b or a == c or b==c:
print("这是等腰三角形")
else:
print("这是普通三角形")
else:
print("你输入的三条边构不成三角形")
# 练习
a = int(input("请输入第一条边:"))
b = int(input("请输入第一条边:"))
c = int(input("请输入第一条边:"))
div(a,b,c)
Python语法:函数
最新推荐文章于 2024-04-24 09:40:00 发布