函数就是把一段重复使用的代码打包封装,给它起一个名字,需要的时候直接调用,不用重复写一大段代码。
作用:代码复用、逻辑清晰、方便维护
def 函数名(参数列表):
"""函数文档字符串(说明函数功能,可选)"""
函数体 # 要执行的代码
return 返回值 # 可选,没有return默认返回None
def:define,定义函数的关键字,必须写():括号里面放参数,可以为空::冒号不能漏,后面缩进写函数内部代码(4空格缩进)return:返回结果,执行return后函数结束;不写返回None# 定义函数
defsay_hello():
print("你好,欢迎学习Python函数!")
# 调用函数,函数不调用不会执行
say_hello()
say_hello()
输出:
你好,欢迎学习Python函数!
你好,欢迎学习Python函数!
参数:调用函数时传入的数据,函数内部可以使用。
defadd(a, b):
"""求两个数字相加"""
res = a + b
return res
# 调用,按顺序传参
num = add(3,5)
print(num) #8
print(add(10,20)) #30
给参数设置默认值,如果调用不传就用默认
⚠️ 默认参数要放在普通参数后面
defpower(x, n=2):
"""计算x的n次方,默认平方"""
return x ** n
print(power(4)) # 4的平方,16
print(power(2,3)) #2的3次方,8
调用时指定参数名字,可以打乱顺序
definfo(name, age):
print(f"姓名:{name},年龄:{age}")
info(age=18, name="小明")
return后面可以是变量、表达式;return执行,函数立刻结束,后面代码不会运行;defget_sum_sub(a,b):
s = a+b
sub = a-b
return s, sub
sum_res, sub_res = get_sum_sub(10,3)
print(sum_res, sub_res) #13 7
globalcount = 0#全局变量
defadd_count():
global count
count +=1
add_count()
print(count) #1
defrepeat_cheer(n):
for i in range(n):
print("加油!")
repeat_cheer(3)
defis_even(num):
if num % 2 == 0:
returnTrue
else:
returnFalse
print(is_even(4)) #True
print(is_even(7)) #False
defmy_max(lst):
max_val = lst[0]
for item in lst:
if item > max_val:
max_val = item
return max_val
print(my_max([12,45,7,99,23])) #99
deffactorial(n):
result = 1
for i in range(1,n+1):
result *= i
return result
print(factorial(5)) #120
素数:大于1,只能被1和自己整除
defis_prime(num):
if num <=1:
returnFalse
for i in range(2,num):
if num % i ==0:
returnFalse
returnTrue
print(is_prime(13)) #True
print(is_prime(15)) #False
defcount_char(s):
upper = 0
lower =0
for c in s:
if c.isupper():
upper +=1
elif c.islower():
lower +=1
return upper, lower
u,l = count_char("Hello Python")
print(f"大写:{u},小写:{l}")
def定义函数,不调用不会执行;很多新手写了函数忘记调用:和缩进千万不要漏return和print不一样:print只是打印输出;return才是把结果交给调用处