def 函数名(形参1,形参2):函数体return 返回值 #return 不是必须的
函数名(实参1,实参2) # 实参与形参个数一样
或者
返回值 = 函数名(实参1,实参2) # 实参与形参个数一样
注意:函数得先定义,后调用
# 定义一个求和函数
def calcSum(begin,end):theSum = 0for i in range(begin,end+1):theSum += iprint(theSum)# 调用函数
# 求1-100的和
calcSun(1,100)
def test():print('hello')print('world')
# 两次调用
test()
test()
形参与实参个数一致,类型不受限制,但是实参类型需一致
def add(a,b):return a + bprint(add(2,3))
print(add(2.5,3.2))
print(add('hello','world'))
打印逻辑放在函数外,这种更常用,利于和用户交互
# 定义一个求和函数
def calcSum(begin,end):theSum = 0for i in range(begin,end+1):theSum += ireturn theSum# 调用函数
# 求1-100的和
result = calcSun(1,100)
print(result)
def isOdd(num):if num % 2 == 0:return Falseelse:return Trueprint(isOdd(10))
def getPoint():x = 1y = 2return x,y
a,b = getPoint() # 多元赋值
_,b = getPoint() #值需要y,不需要x
x = 20
def test():x = 10print(x)
test() # 10
print(x) # 20
def test():global x = 10
test()
print(x) # 10
调试执行:可随时停下来,观察中间过程
代码单步运行:step into
用一个函数的返回值作为另一个函数的参数
def isOdd(num):if num % 2 == 0:return Falsereturn Truedef add(x,y):return x + yprint(isOdd(add(2,3)))
一个函数体的内部还可以调用其它函数
def test1():print('hello')def test2():print('world')test1()test2()
# n!
def factor(n):if n == 1:return 1return n * factor(n - 1)
print(factor(5))
n为局部变量,局部变量在函数的栈帧
debug:形参的默认值,带有debug,可以在调用函数的时候不必传参(注意:只能在形参列表的最后)
def add(x,y,debug=False):if debug:print(f'x = {x},y = {y}')return x + yresult = add(10,20) # 不开启调试
result = add(10,20,True) # 为True则开启调试
print(result)
def add(x,y):return x + y
print(add(2,3))
def test(x,y):print(f'x = {x}')print(f'y = {y}')
test(x = 10,y = 20)
test(y = 2,x = 1)
注意:位置传参和关键字传参混合使用时,要求位置参数在前,关键字参数在后
下一篇:快速排序详解-java实现