下面从基础→参数→返回值→嵌套函数→实战小案例,每个都带可直接运行代码,适合练习。
1. 基础无参函数:打印问候
defsay_hello(): print("你好,欢迎学习Python函数!")# 调用函数say_hello()
2. 带位置参数:计算两数之和
defadd(a, b): res = a + b print(f"{a} + {b} = {res}")add(3, 5)add(10, 20)
3. 带返回值 return(常用)
return 把结果返回给调用处,函数外部可以接收结果
defadd_return(a, b):return a + btotal = add_return(4, 6)print(total) # 10
4. 默认参数
defpower(num, n=2):"""计算num的n次方,默认平方"""return num ** nprint(power(5)) # 5的平方 25print(power(3, 3)) # 3的3次方 27
5. 关键字参数
defstudent_info(name, age): print(f"姓名:{name}, 年龄:{age}")student_info(age=18, name="小明")
6. 可变参数 *args 接收多个位置参数
defsum_all(*args):"""求任意多个数字总和""" s = 0for i in args: s += ireturn sprint(sum_all(1,2,3))print(sum_all(10,20,30,40))
7. 关键字可变参数 **kwargs
接收任意多个键值对,存为字典
defshow_info(**kwargs): print(kwargs)for k, v in kwargs.items(): print(f"{k}:{v}")show_info(name="张三", age=20, city="西安")
8. 函数嵌套(内部函数)
defouter(x):definner(y):return x + yreturn innerf = outer(10)print(f(5)) # 15
9. 实战练习1:判断是否偶数
defis_even(n):if n % 2 == 0:returnTrueelse:returnFalseprint(is_even(4))print(is_even(7))
10. 实战练习2:求列表最大值,不使用max内置函数
defmy_max(lst): max_val = lst[0]for num in lst:if num > max_val: max_val = numreturn max_valprint(my_max([2,8,1,15,3]))
11. 实战练习3:阶乘计算
deffactorial(n): result = 1for i in range(1, n+1): result *= ireturn resultprint(factorial(5)) # 5! = 120
12. 实战练习4:字符串统计,统计大写、小写字母数量
defcount_char(s): upper = 0 lower = 0for c in s:if c.isupper(): upper +=1elif c.islower(): lower +=1return upper, loweru,l = count_char("Hello Python")print(f"大写:{u},小写:{l}")
13. 递归函数案例:阶乘递归写法
deffact_rec(n):if n == 1:return1return n * fact_rec(n-1)print(fact_rec(5))
练习题(自己动手写)