04_函数

第4课:函数

课程目标

  • 掌握函数的定义和调用方法
  • 学习参数传递和返回值的使用
  • 理解函数的作用域和命名空间

1. 函数的基本概念

函数是一段可重复使用的代码块,用于执行特定的任务。

2. 函数的定义和调用

# 定义函数
def greet():print("你好,世界!")# 调用函数
greet()# 带参数的函数
def greet_person(name):print(f"你好,{name}!")greet_person("张三")# 带返回值的函数
def add(a, b):return a + bresult = add(5, 3)
print(result)  # 8

3. 参数传递

# 位置参数
def describe_person(name, age, city):print(f"姓名:{name},年龄:{age},城市:{city}")describe_person("张三", 25, "北京")# 默认参数
def greet(name, greeting="你好"):print(f"{greeting}{name}!")greet("张三")
greet("李四", "早上好")# 可变参数
def sum_numbers(*args):return sum(args)print(sum_numbers(1, 2, 3, 4, 5))

4. 返回值

def calculate_area(length, width):return length * widtharea = calculate_area(5, 3)
print(f"面积:{area}")def get_grade(score):if score >= 90:return "优秀"elif score >= 80:return "良好"else:return "及格"grade = get_grade(85)
print(f"等级:{grade}")

5. 练习项目

项目:计算器函数库

def add(a, b):return a + bdef subtract(a, b):return a - bdef multiply(a, b):return a * bdef divide(a, b):if b == 0:return "错误:除数不能为0"return a / bdef calculator():print("=== 简单计算器 ===")while True:try:expression = input("请输入计算表达式(如:5 + 3,输入'q'退出):")if expression.lower() == 'q':breakparts = expression.split()if len(parts) != 3:print("格式错误!")continuea, operator, b = float(parts[0]), parts[1], float(parts[2])if operator == '+':result = add(a, b)elif operator == '-':result = subtract(a, b)elif operator == '*':result = multiply(a, b)elif operator == '/':result = divide(a, b)else:print("不支持的操作符!")continueprint(f"结果:{a} {operator} {b} = {result}")except ValueError:print("输入错误!")if __name__ == "__main__":calculator()

6. 总结

本节课我们学习了:

  • 函数的定义和调用方法
  • 各种参数传递方式
  • 返回值的概念和使用
  • 编写了计算器程序

7. 下节课预告

下节课我们将学习:

  • 面向对象编程基础
  • 类和对象的概念
  • 继承和多态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/94193.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/94193.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32学习笔记19-FLASH

FLASH简介STM32F1系列的FLASH包含程序存储器、系统存储器和选项字节三个部分,通过闪存存储器接口(外设)可以对程序存储器和选项字节进行擦除和编程,读取指定寄存器直接使用指针读即可读写FLASH的用途:利用程序存储器的…

电蚊拍的原理及电压电容参数深度解析:从高频振荡到倍压整流的完整技术剖析

1. 引言在炎炎夏日,蚊虫成为人们生活中的一大困扰。电蚊拍作为一种高效、环保的物理灭蚊工具,凭借其便携性和实用性在全球范围内得到了广泛应用。然而,许多用户对这种看似简单的小家电背后的工作原理知之甚少。电蚊拍是一种新型的灭蚊小家电&…

Mac简单测试硬盘读写速度

一、下载软件 Blackmagic Disk Speed Test 「达芬奇 磁盘速度测试」二、选中测试位置可以随便选个文件比如“下载”目录三、开始测速

⸢ 零 ⸥ ⤳ 安全体系构建内容结构

👍点「赞」📌收「藏」👀关「注」💬评「论」在金融科技深度融合的背景下,信息安全已从单纯的技术攻防扩展至架构、合规、流程与创新的系统工程。作为一名从业十多年的老兵,系统阐述数字银行安全体系的建设路…

XP系统安装Android Studio 3.5.3并建立Java或Native C++工程,然后在安卓手机上运行

第一节 安装Android Studio 3.5.3Android Studio 3.5.3下载地址:Android Studio 3.5.3 December 5, 2019 Windows (32-bit): android-studio-ide-191.6010548-windows32.zip (756.1 MB) https://redirector.gvt1.com/edgedl/android/studio/ide-zips/3.5.3.0/androi…

calchash.exe和chckhash.exe计算pe文件hash值的两个实用小工具

第一部分: C:\WINDOWS\system32\CatRoot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}\NT5.CAT t部分内容B B D 0 2 2 2 1 A A 6 5 5 6 2 8 F 4 9 5 F 6 C D 3 0 3 9 0 8 B B E 0 0 F 9 5 9 5 第二部分: D:\>calchash.exe pidgen.dll BB D0 22 21 AA 65 …

lanczso算法中的额外正交化代码解释

额外正交化 定义:在Lanczos算法中,由于浮点误差,生成的向量可能不完全正交,需要额外正交化步骤。代码实现:def extra_orthogonalization(v, basis):for u in basis:v - u * (v.dot(u) / u.dot(u))

Rabbit 实战指南-学习笔记

第 4 章 RabbitMQ 进阶 mandatory 参数 Returning | RabbitMQ 当 mandatory 参数设为 true 时,交换器无法根据自身的类型和路由键找到一个符合条件的队列,那么RabbitMQ 会调用 Basic.Return 命令将消息返回给生产者,通过调用channel.addReturnListener …

BEVDet4D

1. BEVDet4D算法动机及开创性思路 1)BEVDet算法概述输入输出:输入为6视角图像(NuScenes数据集),输出为3D检测结果核心模块: 图像编码器:由Backbone网络和多尺度特征融合网络组成,处理…

当 AI 学会 “理解” 人类:自然语言处理的进化与伦理边界

大家可以去我的资源看看,有很多关于AI的免费资源可以下载,不下载也可以看看,真的对你有用引言:从 “对话” 到 “理解”——AI 语言能力的时代跃迁现实锚点:以日常场景切入(如 ChatGPT 流畅回应复杂问题、A…

WPF控件随窗体大宽度高度改变而改变

前台控件中:Width"{Binding RelativeSource{RelativeSource AncestorTypeWindow}, PathWidth}"后台代码:定义在加载事件里面this.SizeChanged ProductData_SizeChanged;private void ProductData_SizeChanged(object sender, SizeChangedEven…

E10 通过RPC实现账号批量锁定与解锁

需求背景:账号信息由三方系统管理,包含账号状态,所以需要通过提供给三方的 Rest 接口中,实现账号锁定与解锁。参考基线版本:10.0.2506.01,过低的版本可能无法使用。 锁定分为两种: (…

什么是AI宠物

什么是AI宠物AI宠物是由AI大脑驱动的生命体AI产品。它能主动产生情绪和意图,并通过情绪和意图去驱动自己的动作和行为。它根据自己的意愿和用户互动,不受用户控制。从一定意义上讲,它拥有了人工生命和自由意志。它有自己的行为逻辑&#xff0…

简单AI:搜狐公司旗下AI绘画产品

本文转载自:简单AI:搜狐公司旗下AI绘画产品 - Hello123工具导航 ** 一、平台定位与技术特性 搜狐简单 AI 是搜狐推出的多模态 AI 创作平台,基于自研大模型提供文生图、文生文等能力。它专注于零门槛内容生成,用户无需专业技能即…

vue3 3d饼图

完整3D饼图项目下载 https://download.csdn.net/download/weixin_54645059/91716476 只有一个vue文件 直接下滑到完整代码就阔以 本文介绍了如何使用ECharts和ECharts-GL插件实现3D饼图效果,并提出了数值显示未解决的问题。主要包含以下内容: 安装所需…

全球电商业财一体化趋势加速,巨益科技助力品牌出海精细化运营

行业背景:跨境电商进入品牌化发展新阶段随着国内电商市场竞争日趋激烈,跨境电商已成为中国品牌寻求增长突破的重要赛道,在TikTok、Temu等平台出海浪潮推动下,越来越多的中国品牌开始布局全球市场。然而,从单一市场的铺…

【序列晋升】13 Spring Cloud Bus微服务架构中的消息总线

Spring Cloud Bus作为微服务架构中的关键组件,通过消息代理实现分布式系统中各节点的事件广播与状态同步,解决了传统微服务架构中配置刷新效率低下、系统级事件传播复杂等问题。它本质上是一个轻量级的事件总线,将Spring Boot Actuator的端点…

[激光原理与应用-314]:光学设计 - 光学系统设计与电子电路设计的相似或相同点

光学系统设计与电子电路设计虽分属不同工程领域,但在设计理念、方法论和工程实践中存在诸多相似或相同点。这些共性源于两者均需解决复杂系统的优化问题,并遵循工程设计的通用规律。以下是具体分析:一、设计流程的相似性需求分析与规格定义光…

Linux学习:信号的保存

目录1. 进程的异常终止与core dump标志位1.1 进程终止的方式1.2 core方案的作用与使用方式2. 信号的保存2.1 信号的阻塞2.2 操作系统中的sigset_t信号集类型2.3 进程PCB中修改block表的系统调用接口2.4 信号阻塞的相关问题验证1. 进程的异常终止与core dump标志位 1.1 进程终止…

数据分析编程第二步: 最简单的数据分析尝试

2.1 数据介绍有某公司的销售数据表 sales.csv 如下:第一行是标题,解释每一列存了什么东西。第二行开始每一行是一条数据,对应一个订单。这种数据有个专业的术语,叫结构化数据。这是现代数据处理中最常见的数据类型。整个表格的数据统称为一个…