# 函数必须先创建才能使用,该过程为“函数定义”,函数创建后才可以使用,使用过程为“函数调用“
# 调用规则:函数定义部分的代码仅用于声明函数,调用时才实际执行函数内容
"""定义格式一:def 函数名():
函数体
调用格式: 函数名()
"""
'''
def say():
print("hello huanying")
print("hello guojia")
print("hello python")
say()
'''
# 函数文档注释:为函数添加功能说明,方便开发者查阅函数相关信息
# 格式:def前面空两行,调用前面空两行,连续调用不需要;定义函数名与现有python库冲突也有可能标灰线,改名
'''
def say_hello():
"""说明信息,打印hello Python"""
print("hello")
def sum_1_100():
"""说明信息:用于计算1到100的和"""
i = 1
sum1 = 0
while i <= 100:
sum1 += i
i += 1
print(sum1)
say_hello()
sum_1_100()
'''
# 定义格式二:
"""
def 函数名(参数):
函数体
...
调用格式:函数名(参数)
"""
#定义一个参数的函数
'''
def sums(a):
"""用于计算1到指定数字的和"""
i = 1
sum1 = 0
while i <= a:
sum1 += i
i += 1
print(sum1)
sum(20)
'''
# 定义多个参数的函数调用
'''
def add(a,b):
print(a+b)
add(3,4)
'''
"""
def 函数名(形参): # 形式参数,近在函数体内有效
函数体
...
调用格式:函数名(实参) #实际参数,该值将传递给函数
"""
# 常见错误:调用函数时,实参的数量必须与形参的数量一一对应,否则报错
# TypeError: add() missing 1 required positional argument: 'b' 少调用
# TypeError: add() takes 2 positional arguments but 3 were given 多调用
# 案例:完成“最大值”函数程序
# 要求:任意给出两个数字,打印最大的数字值
# 分析:1,何种参数(必须) 2,是否具有参数,几个(带参数的定义格式,两个) 3,作比较,求出最大值;4,得到最大值后打印
'''
def max2(a,b):
if a > b:
print(a) # 如果a大于b,打印a
else:
print(b)
max2(3,4)
'''
# 参数作用域
# 局部变量:函数内部定义的变量从定义位置开始到函数定义结束位置有效
# 函数外部定义的变量在整个文件中有效
# 函数间不能共享内部定义的变量
# 函数内可以使用全局变量
# 如果局部变量与全局变量冲突,通过global关键字提升局部变量为全局变量,先声明再使用:global 变量名
'''
def max2(num1,num2):
if num1 > num2:
print("#d和%d中的较大数字是%d" % (num1,num2,num1))
else:
print("#d和%d中的较大数字是%d" % (num1,num2,num2))
def min(num3,num4):
if num3 < num4:
print("#d和%d中的较小数字是%d" % (num3,num4,num3))
else:
print("#d和%d中的较小数字是%d" % (num3,num4,num4))
max(1,2)
min(3,4)
'''
'''
def test():
global x
x = 10
print(x)
x =20
test()
print(x)
'''
# 函数的定义----返回值
'''
def add(a,b):
print(a+b)
def div(a,b):
print(a/b)
add(1000,2000)
div(3000,2)
'''
#定义格式三:
"""
def 函数名(参数列表
____函数体)
...
____return 函数运行结果返回值
...
# 调用格式三:变量名 = 函数名(参数列表)
"""
'''
def add(a,b):
#print(a+b)
return a + b
def div(a,b):
#print(a/b)
return a / b
c = add(1000,2000)
print(c)
d = div(3000,2)
print(d)
'''
# return案例
'''
def max2(a,b):
if a > b:
return a
else:
return b
c = max2(3,4)
print(c)
'''
# 案例2
'''
def test():
return 1
print("-------")
return 2
x = test()
print(x)
# 输出结果:1
'''
# 结论:使用变量接收不存在返回值的函数,结果为None
# 结论2:同一个函数执行过程中只能执行一次return语句,执行完成后,return后面的内容将不在执行,函数执行完毕
# 同一个函数可以返回多个返回值,使用对应数量的变量接收即可
'''
def mul():
return 3, 4, 5
x,y,z = mul()
print(x)
print(y)
print(z)
'''
# 函数间的调用:在一个函数中调用另一个函数的过程
'''
def add(a,b):
#print(a+b)
return a + b
def div(a,b):
#print(a/b)
return a / b
def get(a,b):
# 先计算和
c = add(a,b)
# 再计算平均值
d = div(c,2)
return d
x = get(1000,2000)
print(x)
'''
# 案例:基于最大值函数完成“三个数字求最大值”函数,要求:任意给出三个数字,可以得到最大的数字值
# 分析:1,选用何种函数的定义格式(2个,一个是求两个最大数字的最大声,一个是求三个数字的最大值);
# 2,是否具有参数,几个(调用两个数字最大值函数来完成);
# 3,得到最大值后做什么(return返回);4,是否具有返回值,如果有返回什么
'''
def max2(a,b):
if a > b:
return a
else:
return b
def max3(a,b,c):
#先使用两个数字求出最大值
x = max2(a,b)
# 使用得到的结果再与第三个数字一起求最大值
y = max2(x,c)
return y
m = max3(1,3,5)
print(m)
'''
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通