国庆节10月1日
--


Python函数的定义、调用、参数、返回值及说明文档

函数是组织好的、可重复使用的、用来实现特定功能的代码片段。
1# 定义函数2def 函数名(参数列表):3 函数体4 ......5 return 返回值1# 调用函数2函数名(参数)1# 定义函数2def out_line():3 print('-------------------------')4
5# 调用函数6out_line()在定义函数时,根据业务需要,可以指定参数与返回值。
1# 计算圆的面积2def circle_area(r):3 area = 3.14 * r * r4 return area5
6# 调用函数7c_area = circle_area(10)8print(c_area) # 314.01# 计算长方形的面积2def rectangle_area(l, w):3 area = l * w4 return area5
6# 调用函数7r_area = rectangle_area(20, 10)8print(r_area) # 200return 语句只有返回功能,而没有输出打印的功能,如果要输出,需要结合 print() 函数来实现函数可以有多个返回值,返回值会封装到元组中。
1def circle_area_len(r):2 return 3.14 * r * r, 2 * 3.14 * r3
4# 方式1:封装到元组中5al = circle_area_len(10)6print(al) # (314.0, 62.800000000000004)7
8# 方式2:元组解包9area, len = circle_area_len(10)10print(area, len) # 314.0 62.800000000000004函数的说明文档(Docstring)是写在函数开头,用三个引号包裹的字符串,用于解释函数的功能、参数、返回值等信息,方便调用者清楚函数的具体作用及细节。
1def 函数名(参数列表):2 """3 函数功能描述4
5 :param 参数名: 参数说明6 :return: 返回值说明7 """8 函数体9 return 返回值1def circle_area_len(r):2 """3 该函数用于根据圆的半径,计算圆的面积和圆的周长4
5 :param r: 圆的半径6 :return: 圆的面积,圆的周长7 """8 return 3.14 * r * r, 2 * 3.14 * rhelp 函数:help(circle_area_len)记住:好的文档,能让你的代码更容易理解、使用和维护!
def 函数名(参数列表): 加缩进的函数体,return 返回值 把结果交回调用处函数名(参数);函数必须先定义后调用,定义时函数体不会执行,调用时才运行return 只有”返回”功能、没有打印功能,要看到结果得配合 print()return 就结束,后面的代码不再执行;没有 return 的函数返回 Nonereturn 值1, 值2,实际返回一个元组;可以用两个变量接(元组解包),也可以用一个变量接整个元组:param 参数名:、:return:help(函数名);IDE 里鼠标悬浮在函数上也会自动展示 2-1 分数等级判断
定义一个函数 get_grade(score),根据传入的分数返回对应的等级:
批改(2026-09-28):✅ 正确(实测 93→A、90→A、80→B、75→B、65→C、60→C、59→D,四个分支都对;只是改用
input()交互,未像参考答案那样一次跑多组)。
一级 · 思路:分数从高到低依次判断,命中一档就把对应字母交回去;最后一个分支兜住剩下的分数
二级 · 方法:def 函数名(参数): 定义;用 if score >= 90: / elif / else: 分档;每档 return "A" 这样的字符串
三级 · 骨架:def get_grade(score): / if score >= ____: / return "A" / elif ...: / else: return "____"
1# 2-12def get_grade(score):3 if score >= 90:4 return "A"5 elif score >= 75:6 return "B"7 elif score >= 60:8 return "C"9 else:10 return "D"11
12print(get_grade(93)) # A13print(get_grade(80)) # B14print(get_grade(65)) # C15print(get_grade(40)) # D 2-2 回文串判断
定义一个函数 is_palindrome(s),判断字符串是否是回文串(正读和反读相同),返回 bool 值。
示例回文串:“level”、“radar”、“黄山落叶松叶落山黄”、“12321”
批改(2026-09-28):⚠️ 函数本身正确,但只测了
is_palindrome("level")一个回文用例(输出 True),没有反例;建议补print(is_palindrome("hello"))(应为 False)和中文/数字用例。
一级 · 思路:回文就是”原串”和”把它整个倒过来”完全一样,所以先得到倒序字符串,再和原串比一比
二级 · 方法:字符串切片 s[::-1] 得到倒序;返回比较结果 s == s[::-1](比较运算本身就是布尔值,不必再写 if)
三级 · 骨架:def is_palindrome(s): / return s == s[____]
1# 2-22def is_palindrome(s):3 return s == s[::-1]4
5print(is_palindrome("level")) # True6print(is_palindrome("hello")) # False7print(is_palindrome("黄山落叶松叶落山黄")) # True8print(is_palindrome("12321")) # True9print(is_palindrome("12345")) # False 2-3 时间转换
定义一个函数 time_convert(seconds),将传入的秒数转换为小时、分钟、秒,并返回格式化的字符串。
批改(2026-09-28):⚠️ 换算逻辑和输出正确(772 → 0 小时 12 分钟 52 秒),但有两点差在题面:函数名拼成了
time_conver(要求time_convert),且只测了小时为 0 的 772;建议改用time_convert(3772)验证小时位。
一级 · 思路:先除出整小时数(不够 1 小时的零头留下继续算);剩下的秒按同样的办法拆出分钟和秒
二级 · 方法:整除 // 取商、取余 % 拿余数——hours = seconds // 3600、minutes = (seconds % 3600) // 60、seconds = (seconds % 3600) % 60;最后用 f-string 拼成 f"{hours} 小时 {minutes} 分钟 {seconds} 秒"
三级 · 骨架:hours = seconds ____ 3600 / minutes = (seconds % 3600) ____ 60 / return f"{____} 小时 {minutes} 分钟 {seconds} 秒"
1# 2-32def time_convert(seconds):3 hours = seconds // 36004 minutes = (seconds % 3600) // 605 seconds = (seconds % 3600) % 606 return f"{hours} 小时 {minutes} 分钟 {seconds} 秒"7
8print(time_convert(3772)) # 1 小时 2 分钟 52 秒如果你喜欢,那么欢迎来到我的世界!
了解更多暂未播放



"生活不是等待暴风雨过去,而是学会在雨中跳舞。"—— 塞维涅夫人


