基础语法3:
1.函数:
<1>.定义一个求和函数:
def calcSum(beg,end):thesum = 0for i in range(beg,end+1):thesum += ireturn(thesum)a = calcSum(1,100)
print(a)
上述代码要注意一个重要的点:那就是返回值,若没有返回值,而是直接定义的函数里print的话,那么调用时就不要再print了,如果不小心调用时也print了,那么将会打印出两个值,第二个值为None,因为w当你调用 a = calcSum(1, 100)
时,函数虽然正确计算了累加和 5050 并打印出来,但变量 a
实际上被赋值为 None
(因为函数没有返回值),所以第二个 print(a)
会输出 None
。
<2> .语法格式:
创建函数、调动函数,先定义再使用
<3>.函数参数:
在C++、Java中,不光要求形参和实参个数要匹配,还要求类型也匹配
但是在python中,只要求个数,对类型无要求(动态类型),在函数体里能够支持对应运算操作即可。
例:
def add(x,y):return x+yprint(add(10,20))
print(add(1.5,2.5))
print(add('Hello','world'))
print(add(10,'Hello'))
上述代码第四个打印是错误的,不支持这种运算操作。
<4>.函数返回值:
函数的参数可以视为是函数的“输入”,则函数的返回值就可以视为是函数的“输出”。
一个函数可以含有多个return,python中一个函数可以返回多个值
例:
if num % 2 == 0:return False
return True
<5>.函数的作用域:
函数内部的变量名,只能在函数内部生效。
函数内部,外部可以使用同名变量,但是是不同变量
在函数中尝试查找全局变量是可取的,但是想修改,需使用global,global x意为将x变为全局变量
<6>.链式调用:
def isOdd(num):if num % 2 == 0:return Falseelse:return Trueresult = isOdd(10)
print(result)
将一个函数的返回值作为另一个函数的参数,被称为链式调用。
<7>.嵌套调用:
Python 嵌套调用指在一个函数内部调用另一个函数,可多层嵌套。
def square(x):return x ** 2 # 计算平方def add(a, b):return a + b # 计算加法# 嵌套调用:add(square(3), square(4)) = 3² + 4² = 25
result = add(square(3), square(4))
print(result) # 输出 25
<8>.递归:
递归是嵌套调用中的一种特殊情况。
例:计算5!
def factor(n):if n == 1:return 1return factor(n - 1) * n result = factor(3)
print(result)
<9>.参数默认值
python中的函数,可以给形参指定默认值,带有默认值的参数,可以在调用时不传参
例:
def add(x,y,debug = False):if debug:print(f'调试信息:x = {x},y = {y}')return x+y
print(add(20,10))
print(add(10,20,True))
上述代码中。debug = False 未指定时,默认为False,且带有默认值的参数需放到没有默认值的参数后面。