当前位置:首页>python>Python学习之函数的定义和案例练习 3

Python学习之函数的定义和案例练习 3

  • 2026-08-25 06:02:53
Python学习之函数的定义和案例练习 3

一、什么是函数

函数就是把一段重复使用的代码打包封装,给它起一个名字,需要的时候直接调用,不用重复写一大段代码。

作用:代码复用、逻辑清晰、方便维护

二、函数定义语法

def 函数名(参数列表):
"""函数文档字符串(说明函数功能,可选)"""
    函数体  # 要执行的代码
return 返回值   # 可选,没有return默认返回None

关键字说明

  1. def:define,定义函数的关键字,必须写
  2. 函数名:遵循变量命名规则,小写+下划线,不能数字开头
  3. ():括号里面放参数,可以为空
  4. ::冒号不能漏,后面缩进写函数内部代码(4空格缩进)
  5. return:返回结果,执行return后函数结束;不写返回None

最简单无参函数

# 定义函数
defsay_hello():
    print("你好,欢迎学习Python函数!")

# 调用函数,函数不调用不会执行
say_hello()
say_hello()

输出:

你好,欢迎学习Python函数!
你好,欢迎学习Python函数!

三、带参数的函数

参数:调用函数时传入的数据,函数内部可以使用。

1. 位置参数

defadd(a, b):
"""求两个数字相加"""
    res = a + b
return res

# 调用,按顺序传参
num = add(3,5)
print(num)  #8
print(add(10,20)) #30

2. 默认参数

给参数设置默认值,如果调用不传就用默认

⚠️ 默认参数要放在普通参数后面

defpower(x, n=2):
"""计算x的n次方,默认平方"""
return x ** n

print(power(4))    # 4的平方,16
print(power(2,3))  #2的3次方,8

3. 关键字参数

调用时指定参数名字,可以打乱顺序

definfo(name, age):
    print(f"姓名:{name},年龄:{age}")

info(age=18, name="小明")

四、return 返回值要点

  1. return后面可以是变量、表达式;
  2. return执行,函数立刻结束,后面代码不会运行;
  3. 可以返回多个值,本质返回元组
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

五、局部变量和全局变量

  • 局部变量:函数内部定义,只能函数里面用,函数结束销毁
  • 全局变量:函数外面定义,全部代码可见;函数内部修改全局要加global
count = 0#全局变量

defadd_count():
global count
    count +=1

add_count()
print(count) #1

六、实战案例练习(由易到难)

练习1:写函数,输出n遍“加油”

defrepeat_cheer(n):
for i in range(n):
        print("加油!")

repeat_cheer(3)

练习2:写函数,判断一个数字是否偶数,返回True/False

defis_even(num):
if num % 2 == 0:
returnTrue
else:
returnFalse

print(is_even(4)) #True
print(is_even(7)) #False

练习3:求列表最大值,不使用max内置函数

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

练习4:计算阶乘 n! = 123*...*n

deffactorial(n):
    result = 1
for i in range(1,n+1):
        result *= i
return result

print(factorial(5)) #120

练习5:函数实现判断素数(质数)

素数:大于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

练习6:写函数,统计字符串大小写字母数量

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}")

七、课后习题(自己动手写)

  1. 编写函数,接收3个数字,返回最大值
  2. 编写函数,传入列表,返回列表所有元素求和(不用sum)
  3. 编写函数,打印1~n之间所有素数

八、易错点总结

  1. def定义函数,不调用不会执行;很多新手写了函数忘记调用
  2. 冒号:和缩进千万不要漏
  3. 参数个数要匹配,调用传参数量要和定义对应
  4. 局部变量外部访问不到
  5. return和print不一样:print只是打印输出;return才是把结果交给调用处

最新文章

随机文章