Python函数基础

Python函数基础

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

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. 分数等级判断 定义一个函数 get_grade(score),根据传入的分数返回对应的等级:

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

    知识点: def 定义函数、if-elif-else 条件判断、return 返回值

    参考答案:

    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. 回文串判断 定义一个函数 is_palindrome(s),判断字符串是否是回文串(正读和反读相同),返回 bool 值。 示例回文串:“level”、“radar”、“黄山落叶松叶落山黄”、“12321”

    知识点: def 定义函数、return 返回布尔值、字符串切片 s[::-1] 反转

    参考答案:

    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
  • 3. 时间转换 定义一个函数 time_convert(seconds),将传入的秒数转换为小时、分钟、秒,并返回格式化的字符串。

    知识点: def 定义函数、整除 //、取余 %、return 返回字符串

    参考答案:

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

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

了解更多
[ 音乐 ]
封面

音乐

暂未播放

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