Python函数基础

Python函数基础

2026年9月16日·#编程学习/python学习笔记Python/函数·1840 字 9 分钟
浏览量加载中...
AI 摘要- DeepSeek

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

封面图
Python函数基础 - 封面图

函数定义#

函数是组织好的、可重复使用的、用来实现特定功能的代码片段。

定义语法#

# 定义函数
def 函数名(参数列表):
函数体
......
return 返回值

调用语法#

# 调用函数
函数名(参数)

示例#

# 定义函数
def out_line():
print('-------------------------')
# 调用函数
out_line()

函数使用的注意事项#

  • 函数必须先定义,在调用
  • 函数定义时,并不会执行,只有在调用函数时,函数体的逻辑才会运行
  • 函数中通过缩进来描述归属关系
  • 函数定义时的参数列表与返回值语句是可有可无的(由需求确定)

函数的参数与返回值#

在定义函数时,根据业务需要,可以指定参数与返回值。

参数的概念#

  • 形参(形式参数):函数定义时括号里的参数,只能在函数内使用(局部变量)
  • 实参(实际参数):函数在实际调用时传入的参数

示例:单参数函数#

# 计算圆的面积
def circle_area(r):
area = 3.14 * r * r
return area
# 调用函数
c_area = circle_area(10)
print(c_area) # 314.0

示例:多参数函数#

# 计算长方形的面积
def rectangle_area(l, w):
area = l * w
return area
# 调用函数
r_area = rectangle_area(20, 10)
print(r_area) # 200

注意事项#

  • 函数定义时如果有多个参数,多个参数之间使用逗号(,)分隔
  • return 语句只有返回功能,而没有输出打印的功能,如果要输出,需要结合 print() 函数来实现

函数的多个返回值#

函数可以有多个返回值,返回值会封装到元组中。

def circle_area_len(r):
return 3.14 * r * r, 2 * 3.14 * r
# 方式1:封装到元组中
al = circle_area_len(10)
print(al) # (314.0, 62.800000000000004)
# 方式2:元组解包
area, len = circle_area_len(10)
print(area, len) # 314.0 62.800000000000004

函数的说明文档#

函数的说明文档(Docstring)是写在函数开头,用三个引号包裹的字符串,用于解释函数的功能、参数、返回值等信息,方便调用者清楚函数的具体作用及细节。

语法格式#

def 函数名(参数列表):
"""
函数功能描述
:param 参数名: 参数说明
:return: 返回值说明
"""
函数体
return 返回值

示例#

def circle_area_len(r):
"""
该函数用于根据圆的半径,计算圆的面积和圆的周长
:param r: 圆的半径
:return: 圆的面积,圆的周长
"""
return 3.14 * r * r, 2 * 3.14 * r

查看函数说明文档#

  • 使用 help 函数:help(circle_area_len)
  • 鼠标悬浮在函数上,自动展示(IDE推荐)

记住:好的文档,能让你的代码更容易理解、使用和维护!


总结口诀#

  • 定义用def,调用加括号
  • 形参定义时,实参调用时
  • 多参用逗号,返回用return
  • 多值返元组,解包用逗号
  • 文档写三引号,help可查看

相关#

练习题#

一、知识回顾(读完直接做下面的实践题)#

  1. 函数定义:def 函数名(参数列表): 加缩进的函数体,return 返回值 把结果交回调用处
  2. 调用:写 函数名(参数);函数必须先定义后调用,定义时函数体不会执行,调用时才运行
  3. 形参(定义时括号里的参数,只能在函数内使用)与实参(调用时真正传进去的值)是两回事
  4. 多个参数之间用逗号分隔;参数列表和返回值都是可有可无的,看需求
  5. return 只有”返回”功能、没有打印功能,要看到结果得配合 print()
  6. 函数执行到 return 就结束,后面的代码不再执行;没有 return 的函数返回 None
  7. 多个返回值:写成 return 值1, 值2,实际返回一个元组;可以用两个变量接(元组解包),也可以用一个变量接整个元组
  8. 说明文档(Docstring):写在函数体开头、用三引号包裹,注明功能、:param 参数名:、:return:
  9. 查看说明文档:help(函数名);IDE 里鼠标悬浮在函数上也会自动展示
  10. 口诀:定义用 def,调用加括号;形参定义时,实参调用时;多参用逗号,返回用 return;多值返元组,解包用逗号

二、裸写题#

  • 2-1 分数等级判断 定义一个函数 get_grade(score),根据传入的分数返回对应的等级:

    • 分数 >= 90:返回 “A”
    • 分数 >= 75:返回 “B”
    • 分数 >= 60:返回 “C”
    • 分数 < 60:返回 “D”

    批改(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 "____"

    参考答案(做完再点开)
    # 2-1
    def get_grade(score):
    if score >= 90:
    return "A"
    elif score >= 75:
    return "B"
    elif score >= 60:
    return "C"
    else:
    return "D"
    print(get_grade(93)) # A
    print(get_grade(80)) # B
    print(get_grade(65)) # C
    print(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[____]

    参考答案(做完再点开)
    # 2-2
    def is_palindrome(s):
    return s == s[::-1]
    print(is_palindrome("level")) # True
    print(is_palindrome("hello")) # False
    print(is_palindrome("黄山落叶松叶落山黄")) # True
    print(is_palindrome("12321")) # True
    print(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} 秒"

    参考答案(做完再点开)
    # 2-3
    def time_convert(seconds):
    hours = seconds // 3600
    minutes = (seconds % 3600) // 60
    seconds = (seconds % 3600) % 60
    return f"{hours} 小时 {minutes} 分钟 {seconds} 秒"
    print(time_convert(3772)) # 1 小时 2 分钟 52 秒

评论区

[ 标签 ]
# AI37# AI 编程2# AI工具1# AI绘图1# AI辅助开发2# Ajax7# Apifox1# AstrBot3# Astro2# CC Switch1# CDN2# Claude Code1# claudecode2# ClaudeCode1# Cloudflare2# CloudFlare2# CloudFlare-ImgBed3# coc4# CSS10# DeepSeek6# deepseek2# DELETE1# Docker5# EdgeOne3# Gist1# git1# GitHub1# hexo-circle-of-friends1# HTML9# HTTP10# ImageManager1# Java23# java13# JavaScript11# JavaWeb113# JDBC7# JSON2# JUnit1# LangChain25# Linux4# Logback1# Maven17# Muse Spark1# Mybatis1# MyBatis18# MySQL45# MySql1# NapCat1# Node.js1# obsidian2# Obsidian5# OpenCode4# ORM1# PathVariable1# PicGo1# PyCharm1# Python70# RequestBody1# RequestMapping1# RESTful风格1# skills1# Slf4j1# SpringBoot37# SpringMVC5# SQL2# Streamlit5# Svelte2# TailwindCSS1# Telegram3# Tlias2# Vercel1# vscode2# Vue20# Waline3# Web3# WebDAV1# Web基础6# Web开发6# WinSCP1# YAML1# 三层架构1# 中二宣言1# 书籍1# 使用文档10# 写作1# 函数2# 刷步数1# 前端52# 动态1# 动漫1# 包1# 单词2# 博客8# 博客工作流1# 博客开发2# 参数接收1# 友链1# 反思2# 后端48# 图床6# 地图1# 备份2# 大模型1# 奇思妙想1# 存储1# 学习方法6# 学校1# 宝塔面板3# 宝宝10# 实战4# 对象1# 导航栏1# 工具2# 布局2# 开发1# 开发工具1# 开发规范1# 开心1# 异常处理1# 影视2# 微信1# 性能优化2# 总结1# 想法15# 感受1# 感悟11# 指南1# 提示词工程2# 插件5# 故障排除1# 效率工具2# 教程10# 数据分析9# 数据库27# 数据结构1# 文件操作2# 斩神1# 日常95# 日志框架1# 朋友圈1# 朱元璋1# 模块1# 模板1# 正则表达式2# 测试3# 游戏2# 爬虫7# 生活迁移1# 电影2# 电脑1# 碎碎念1# 视觉识别1# 类1# 类型注解1# 网络基础2# 网络教室1# 羊毛2# 脚本2# 脚本工具1# 自动化2# 蓝奏云1# 表单1# 订阅推荐2# 记录2# 评论系统1# 词根1# 词缀1# 说说1# 足迹1# 跑步2# 路径参数1# 转载2# 运动1# 部署11# 部落冲突1# 配置1# 随机图1# 面向对象5# 音乐3# 音标1# 项目实战11# 饮食1# 驼峰命名1# 高德地图1
[ 公告 ]

如果你喜欢,那么欢迎来到我的世界!

了解更多
[ 音乐 ]
封面

音乐

暂未播放

0:000:00
暂无歌词
找不到相关结果。
[ contents ]
[ 全部文章 ]