def 函数名(形参1,形参2):
函数体
return 返回值 #return 不是必须的
函数名(实参1,实参2) # 实参与形参个数一样
或者
返回值 = 函数名(实参1,实参2) # 实参与形参个数一样
注意:函数得先定义,后调用
# 定义一个求和函数
def calcSum(begin,end):
theSum = 0
for i in range(begin,end+1):
theSum += i
print(theSum)
# 调用函数
# 求1-100的和
calcSun(1,100)
def test():
print('hello')
print('world')
# 两次调用
test()
test()
def add(a,b):
return a + b
print(add(2,3))
print(add(2.5,3.2))
print(add('hello','world'))
打印逻辑放在函数外,这种更常用,利于和用户交互
# 定义一个求和函数
def calcSum(begin,end):
theSum = 0
for i in range(begin,end+1):
theSum += i
return theSum
# 调用函数
# 求1-100的和
result = calcSun(1,100)
print(result)
def isOdd(num):
if num % 2 == 0:
return False
else:
return True
print(isOdd(10))
def getPoint():
x = 1
y = 2
return x,y
a,b = getPoint() # 多元赋值
_,b = getPoint() #值需要y,不需要x
def add(a, b):
"""
这是求和的函数
a:第一个数字
b:第二个数字
return:和
"""
return a + b
print(add(1, 2))
help(add)
x = 20 # 全局变量
list1 = [1,2,3,4]
def func():
print(list1) #[1,2,3,4]
def test():
x = 10
list1.append(8)
print(list1) # [1,2,3,4,8]
print(x)
test() # 10
print(x) # 20
def test():
global x = 10 # 当需要修改全局变量时,需申明一下全局变量:global 变量名
test()
print(x) # 10
调试执行:可随时停下来,观察中间过程
代码单步运行:step into
用一个函数的返回值作为另一个函数的参数
def isOdd(num):
if num % 2 == 0:
return False
return True
def add(x,y):
return x + y
print(isOdd(add(2,3)))
一个函数体的内部还可以调用其它函数
def test1():
print('hello')
def test2():
print('world')
test1()
test2()
# n!
def factor(n):
if n == 1:
return 1
return 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 + y
result = 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)
注意:位置传参和关键字传参混合使用时,要求位置参数在前,关键字参数在后