当前位置: 首页 > news >正文

python基础学习笔记第四章

一、函数基础

1. 函数定义

组织好的、可重复使用的、实现特定功能的代码段,Python内置函数:len()print()input()等。

2. 核心好处

提高代码复用性,减少重复代码,提升开发效率。

二、函数的定义与调用

1. 定义语法

def 函数名(传入参数): 函数体 return 返回值
  • 参数:可选,无参数则留空

  • 返回值:可选,无返回值可省略return

2. 调用语法

函数名(实际参数)

3. 注意事项

  • 函数先定义,后调用

  • 严格遵守缩进规则

4. 基础案例:自动查核酸

# 定义函数 def check_nucleic_acid(): print("欢迎到访!") print("请出示您的健康码以及72小时核酸证明!") # 调用函数 check_nucleic_acid()

三、函数的参数

1. 作用

函数运行时,接收外部传入的数据,让函数功能更灵活。

2. 形参与实参

  • 形参:函数定义时的参数(形式上的参数)

  • 实参:函数调用时的参数(实际传入的数值)

3. 语法示例

# 定义:x和y是形参 def add(x, y): result = x + y print(f"{x}+{y}的结果是:{result}") # 调用:5和6是实参 add(5, 6) # 结果:5+6的结果是:11

4. 注意事项

  • 参数数量不限,用逗号分隔

  • 实参与形参一一对应

5. 案例:升级版查核酸(传入体温参数)

def check_nucleic_acid(temperature): print("欢迎到访!请出示您的健康码以及72小时核酸证明,并配合测量体温!") if temperature <= 37.5: print(f"体温测量中,您的体温是:{temperature}度,体温正常请进!") else: print(f"体温测量中,您的体温是:{temperature}度,需要隔离!") # 调用 check_nucleic_acid(37.3) check_nucleic_acid(39.3)

四、函数的返回值

1. 定义

函数执行完成后,返回给调用者的结果,通过return关键字实现。

2. 语法示例

def add(x, y): result = x + y return result # 返回计算结果 # 接收返回值 res = add(3, 4) print(res) # 结果:7

3. 注意事项

  • return后代码不再执行

  • return的函数,默认返回None

4. None类型

  • 类型:NoneType,表示空、无意义

  • 触发场景:函数无return/主动return None

  • 应用场景:if判断(None等同于False)、定义空变量

# 案例1:无返回值函数 def say_hello(): print("Hello..") res = say_hello() print(res) # 结果:None # 案例2:None用于if判断 def check_age(age): if age > 18: return "SUCCESS" return None result = check_age(5) if not result: print("未成年,不可进入") # 结果:未成年,不可进入 # 案例3:定义空变量 name = None

五、函数说明文档

1. 作用

解释函数功能,方便他人/自己理解代码,鼠标悬停可查看。

2. 定义语法

def 函数名(参数): """ 函数功能说明 :param 参数1: 参数1的解释 :param 参数2: 参数2的解释 :return: 返回值的解释 """ 函数体 return 返回值

3. 示例

def add(x, y): """ 两数相加的功能 :param x: 相加的第一个数字 :param y: 相加的第二个数字 :return: 两个数字相加的结果 """ return x + y # 鼠标悬停add()可查看说明文档 add(1,2)

六、函数的嵌套调用

1. 定义

在一个函数内部,调用另一个函数。

2. 执行流程

执行到调用语句时,先完成被调用函数的全部执行,再回到原函数继续执行。

3. 示例

def func_b(): print("---2---") def func_a(): print("---1---") func_b() # 嵌套调用func_b print("---3---") # 调用 func_a() # 执行结果: # ---1--- # ---2--- # ---3---

七、变量的作用域

变量的生效范围,分为局部变量全局变量

1. 局部变量

  • 定义:函数体内部定义的变量

  • 作用域:仅函数内部可用,函数调用结束后自动销毁

  • 示例

    def testA(): num = 100 print(num) # 正常执行:100 testA() # print(num) # 报错:name 'num' is not defined

2. 全局变量

  • 定义:函数体外部定义的变量

  • 作用域:函数内、外均可使用

  • 示例

    num = 100 # 全局变量 def testA(): print(num) # 内部访问:100 def testB(): print(num) # 内部访问:100 testA() testB() print(num) # 外部访问:100

3. global关键字

  • 作用:在函数内部声明变量为全局变量,实现对全局变量的修改

  • 示例

    num = 100 def testB(): global num # 声明num为全局变量 num = 200 print(num) # 结果:200 testB() print(num) # 结果:200(全局变量被修改)

八、综合案例:简易ATM系统

# 定义全局变量 money = 5000000 name = input("请输入您的姓名:") # 定义查询余额函数 def check_balance(): print(f"-------查询余额---------") print(f"{name},您好,您的余额剩余:{money}元") # 定义存款函数 def deposit(): print(f"---------存款---------") depo = int(input("请输入存款金额:")) global money # 声明修改全局变量 money += depo print(f"{name},您好,您存款{depo}元成功") print(f"{name},您好,您的余额剩余:{money}元") # 定义取款函数 def withdraw(): print(f"---------取款---------") withd = int(input("请输入取款金额:")) global money if withd > money: print("余额不足,取款失败") else: money -= withd print(f"{name},您好,您取款{withd}元成功") print(f"{name},您好,您的余额剩余:{money}元") # 定义主菜单函数 def main_menu(): while True: print(f"--------主菜单----------") print(f"{name},您好,欢迎使用ATM自助服务。请选择操作:") print("查询余额[输入1]") print("存款 [输入2]") print("取款 [输入3]") print("退出 [输入4]") choice = input("请输入您的选择:") if choice == "1": check_balance() elif choice == "2": deposit() elif choice == "3": withdraw() elif choice == "4": print("程序退出,感谢使用!") break else: print("输入错误,请重新选择!") # 调用主菜单 main_menu()
http://www.jsqmd.com/news/495632/

相关文章:

  • 工控主板再创新高,龙芯3B5000强势出彩
  • 频谱分析仪测信噪比全攻略:从原理到实战(附普源RSA5065N操作示例)
  • 2026年 干燥机厂家推荐排行榜:桨叶/空心桨叶/污泥/煤泥/液体/真空/多层/撬装式/转筒/高温熔盐干燥机,实力品牌深度解析与选购指南 - 品牌企业推荐师(官方)
  • 2026 AI 框架选型指南:8大主流框架深度对比,小白程序员避坑必看(收藏版)
  • 基于 YOLOv8 的无人机航拍视角车辆行人道路目标检测系统 YOLOV8模型如何训练无人机道路车辆行人目标检测数据集
  • 盒马鲜生卡回收平台精选指南,回收新趋势 - 京回收小程序
  • Activiti7实战:绕过缓存机制,实现已部署流程的在线热更新
  • # 应急响应实战笔记——入侵排查篇
  • 好用的AI硬件开发厂家
  • 零基础部署KART-RERANK:Ubuntu 20.04系统环境保姆级配置指南
  • FreeRTOS信号量详解:从二进制到计数型的实战对比(STM32 CubeMx版)
  • 打开网站显示Parse error: syntax error, unexpected variable $xxx错误怎么办|已解决
  • linux matlab r2025a以及questasim 2024.1资源以及安装
  • Qwen-Image-Edit-2511-Unblur-Upscale效果展示:从模糊到高清,人像修复惊艳对比
  • Hypermesh小BUG修复
  • 实验室智能管理平台功能与价值分析 全生命周期管理的数字化能力
  • YOLO实战:model.predict返回结果Results的10个关键属性解析(附代码示例)
  • PHP 网站完整搬家教程(不报错、不断站)
  • Python机器学习空间模拟与时间预测:生态水文实战;地表参数空间模拟(土地利用分类/降尺度)与水文过程时间预测(径流/地下水位)
  • python-flask的家庭成员亲子相册图片照片管理系统的设计与实现_django pycharm vue
  • Vue2项目中如何通过开源组件优化局域网医疗影像大附件的浏览器端分片校验?
  • Sinkhorn算法实战:用Python实现最优传输问题的快速求解(附完整代码)
  • GLM-OCR快速部署:一键启动服务,支持文本、表格、公式识别
  • 本科论文高效通关:Paperxie AI 初稿写作,从选题到定稿的一站式学术助手
  • DeepSeek-R1-Distill-Qwen-1.5B部署指南:vLLM启动详解,小白也能快速搞定
  • 企业私域如何运营:从流量焦虑到资产沉淀的实战路径
  • 初始Skills
  • 如何用LLM提升自动驾驶的感知能力?实战案例与最新工具推荐
  • 小白程序员必看:手把手教你搭建RAG-SQL Router智能问答系统(收藏版)
  • MEMC插帧技术全解析:从原理到手机屏幕的实战应用