第5天:函数

学习目标

  • 理解函数的基本概念和作用
  • 掌握函数的定义和调用
  • 学习参数传递和返回值
  • 了解作用域的概念
学习内容
1. 函数的基本概念

函数是组织代码的基本方式,它将一组逻辑相关的操作封装在一起,通过函数名调用函数,可以使代码更简洁、更易读和维护。

2. 函数的定义和调用
  • 定义函数:

def function_name(parameters):"""函数的文档字符串(可选)"""# 函数体return value  # 可选
  • 调用函数:

function_name(arguments)
  • 示例:

def greet(name):"""打印问候语"""print("Hello, " + name + "!")greet("Alice")
greet("Bob")
3. 参数和返回值
  • 参数传递:

    • 位置参数:按位置传递参数。
    • 关键字参数:按名称传递参数。
    • 默认参数:为参数提供默认值。
    • 可变参数:接受任意数量的位置参数或关键字参数。
# 位置参数
def add(a, b):return a + bprint(add(3, 5))  # 传递参数3和5,输出结果是8# 关键字参数
def greet(name, message):print(message + ", " + name + "!")greet(name="Alice", message="Good morning")  # 使用关键字参数# 默认参数
def greet(name, message="Hello"):print(message + ", " + name + "!")greet("Alice")  # 使用默认参数,输出Hello, Alice!
greet("Bob", "Good evening")  # 覆盖默认参数,输出Good evening, Bob!# 可变参数
def add(*args):return sum(args)print(add(1, 2, 3, 4, 5))  # 传递任意数量的参数,输出结果是15def display_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")display_info(name="Alice", age=30, city="New York")  # 传递任意数量的关键字参数
  • 返回值:

    def add(a, b):return a + bresult = add(3, 5)
    print(result)  # 输出结果是8
    
4. 作用域
  • 局部变量和全局变量:

    • 局部变量:在函数内部定义,作用域仅限于函数内部。
    • 全局变量:在函数外部定义,作用域为整个程序
x = 10  # 全局变量def my_function():x = 5  # 局部变量print("函数内部的x:", x)my_function()
print("函数外部的x:", x)
  • global关键字: 用于在函数内部声明全局变量。

x = 10def my_function():global xx = 5my_function()
print("函数外部的x:", x)  # 输出结果是5
今日任务
  1. 定义并调用简单函数:

    • 定义一个函数,打印问候语。
    • 调用该函数并传递参数。
def greet(name):"""打印问候语"""print("Hello, " + name + "!")greet("Alice")
greet("Bob")
  1. 练习参数传递和返回值:

    • 定义一个函数,接受两个参数并返回它们的和。
    • 使用位置参数、关键字参数和默认参数调用该函数。
    • 定义一个函数,接受任意数量的参数,并返回它们的乘积。
def add(a, b):return a + b# 位置参数
print(add(3, 5))# 关键字参数
print(add(a=3, b=5))# 默认参数
def greet(name, message="Hello"):print(message + ", " + name + "!")greet("Alice")
greet("Bob", "Good evening")# 可变参数
def multiply(*args):result = 1for num in args:result *= numreturn resultprint(multiply(1, 2, 3, 4, 5))
  1. 理解并使用作用域:

    • 定义一个包含局部变量的函数,并观察局部变量的作用域。
    • 定义一个全局变量,并在函数内部修改它。
# 局部变量示例
x = 10def my_function():x = 5print("函数内部的x:", x)my_function()
print("函数外部的x:", x)# 全局变量示例
y = 20def modify_global():global yy = 15modify_global()
print("函数外部的y:", y)  # 输出结果是15
扩展练习
  1. 编写一个函数,接受一个列表并返回列表中的最大值。

def find_max(numbers):max_num = numbers[0]for num in numbers:if num > max_num:max_num = numreturn max_numprint(find_max([1, 2, 3, 4, 5]))  # 输出结果是5

  1. 编写一个函数,接受一个字符串并返回该字符串的反转。

def reverse_string(s):return s[::-1]print(reverse_string("hello"))  # 输出结果是olleh

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

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

相关文章

ArcGIS与Excel分区汇总统计三调各地类面积!数据透视表与汇总统计!

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 01 需求说明 介绍一下ArcGIS与Excel统计分区各地类的三调地类面积。 ArcGIS统计分析不会&#x…

Unity客户端的Http通讯实战

背景知识 在Unity游戏开发中,一个常见场景是,后端扔过来一个Swagger后端接口网页,需要你使用对应的接口对应的接口发送和接收数据,如图所示为发起Get请求: 我们可以通过点击Try it out按钮直接在网页上测试收发数据&a…

spring整合openAI大模型之Spring AI

文章目录 一、SpringAI简介1.什么是SpringAI2.SpringAI支持的大模型类型(1)聊天模型(2)文本到图像模型(3)转录(音频到文本)模型(4)嵌入模型(5&…

Guava-EventBus 源码解析

EventBus 采用发布订阅者模式的实现方式,它实现了泛化的注册方法以及泛化的方法调用,另外还考虑到了多线程的问题,对多线程使用时做了一些优化,观察者模式都比较熟悉,这里会简单介绍一下,重点介绍的是如何泛化的进行方法的注册以及…

建筑工程八大员标准员题库附答案

一、单选题(在每小题列出的四个选项中,只有一个最符合题目要求的选项) 1、【单选题】( )适用于处理较厚软土和冲填土地基,多用于处理机场跑道、水工结构、道路、路堤、码头、岸坡等工程地基,对于泥炭等有机质沉积地基则不适用。(B) A、换土垫层法 B、预压法 C、灰…

dial tcp 10.96.0.1:443: connect: no route to host

1、创建Pod一直不成功,执行kubectl describe pod runtime-java-c8b465b98-47m82 查看报错 Warning FailedCreatePodSandBox 2m17s kubelet Failed to create pod sandbox: rpc error: code Unknown desc failed to setup network for…

数据挖掘与分析——数据预处理

数据探索 波士顿房价数据集:卡内基梅隆大学收集,StatLib库,1978年,涵盖了麻省波士顿的506个不同郊区的房屋数据。 一共含有506条数据。每条数据14个字段,包含13个属性,和一个房价的平均值。 数据读取方法…

使用STL容器还是Qt容器?

在C编程中,选择合适的容器库对于编写高效、可维护的代码至关重要。两大主流选择是STL容器(如std::map,std::vector等)和Qt容器(如QMap,QVector等)。本文将探讨两者的优缺点,以帮助开…

IMU预积分学习记录

参考资料: https://gutsgwh1997.github.io/2020/05/01/IMU%E9%A2%84%E7%A7%AF%E5%88%86-%E4%B8%80/ https://www.cnblogs.com/weihao-ysgs/p/IMU-Pre-Integration.html https://blog.csdn.net/weixin_51547017/article/details/122136427

昨天gitee网站访问不了,开始以为电脑哪里有问题了

昨天gitee网站下午访问不了,开始以为是什么毛病。 结果同样的网络,手机是可以访问的。 当然就ping www.gitee.com 结果也下面那样是正常的 以为是好的,但就是访问www.gitee.com也是不行,后来用阿里云的服务器curl访问是下面情况&…

推荐3个高级设计师都在用的小众网站,效果贼拉炫酷

今天给大家推荐三个可以提升设计质感的网站,效果贼拉炫酷。 第一个:Gradientor 这是一个在线生成渐变图片的网站,只需在上面上传SVG格式的图片,画布就能根据图片内容自动生成渐变效果,也可以在画布里用鼠标直接绘制&…

2024年保安职业资格考试试题分享

137.道路交通中设置的安全岛的作用是(  )。 A.供过街行人避让车辆 B.供非机动车临时停放 C.供机动车临时停放 D.供交通警察指挥交通 答案:A 138.当某单位的风险等级高而防护级别低时,说明该单位的安全防护水平( )。 A.高 B.中 C.低…

LabVIEW机器视觉在质量控制中的应用

基于LabVIEW的机器视觉系统在质量控制中应用广泛,通过图像采集、处理和分析,自动检测产品缺陷、测量尺寸和识别标记,提高生产效率和产品质量。下面介绍LabVIEW机器视觉系统在质量控制中的实现方法、应用场景及其优势。 项目背景 在现代制造业…

github连接报本地

一、创建GIthub账号 这里默认大家已经创建好了并且有加速器,能正常上网,然后才能进行下面的操作。 二、创建ssh公钥 网址:Sign in to GitHub GitHub Sign in to GitHub GitHub 进入下面的界面: 然后创建新的密钥 三、官方文…

MCT Self-Refine:创新集成蒙特卡洛树搜索 (MCTS)提高复杂数学推理任务的性能,超GPT4,使用 LLaMa-3 8B 进行自我优化

📜 文献卡 题目: Accessing GPT-4 level Mathematical Olympiad Solutions via Monte Carlo Tree Self-refine with LLaMa-3 8B作者: Di Zhang; Xiaoshui Huang; Dongzhan Zhou; Yuqiang Li; Wanli OuyangDOI: 10.48550/arXiv.2406.07394摘要: This pape…

kettle无法启动问题_PENTAHO_JAVA_HOME

1,遇到spoon.bat启动报错:先增加pause看清错误信息 1.1,错误信息 1.2,因为本地安装jdk1.6无法支持现有版本kettle。只能手动执行kettle调用的java路径;如下 系统--高级系统设置--高级--环境变量 启动成功

fastapi教程(一):初识 fastapi

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 并基于标准的 Python 类型提示。 关键特性: 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 …

Linux内存从0到1学习笔记(8.16 SMMU详解)

写在前面 前面博客已经了解过。SMMU是IOMMU在ARM架构上的实现。主要为了解决虚拟化环境中,GuestOS无法直接将连续的物理地址分配给硬件的问题。对于Hypervisor/GuestOS的虚拟化系统来说,所有的VM都运行在Hypervisor上,每一个VM独立运行一个OS(GuestOS),Hypervisor完成硬…

甘肃旅游服务平台的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,公告信息管理,景点管理,酒店管理,基础数据管理,美食管理 前台账户功能包括:系统首页,个人中心&#xff0…

HTML静态网页成品作业(HTML+CSS)——故宫介绍网页(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…