Python入门系列二-控制结构与函数

devtools/2025/1/3 5:38:11/

在Python编程中,控制程序流程的结构非常重要。通过合理使用条件判断语句、循环结构和函数,可以让程序更加高效和可维护。此外,理解局部变量和全局变量的概念也是编写清晰代码的重要一步。本文将详细介绍Python中的控制结构和函数机制,包括如何使用ifelseelif进行条件判断,如何使用forwhile实现循环,如何定义和调用函数,以及如何管理参数、返回值和变量作用域。

1. 条件判断语句:ifelseelif

条件判断语句允许程序根据条件的真或假来决定执行哪个代码块。Python中最常用的条件判断语句包括ifelseelif

1.1 if语句

if语句用于检查一个条件表达式,如果条件为真,则执行相应的代码块。如果条件为假,代码块不会被执行。

python">x = 10
if x > 5:print("x大于5")

在这个例子中,程序检查x > 5是否为真。因为x的值是10,所以输出将会是“x大于5”。

1.2 else语句

else语句在if条件不成立时执行。它可以跟在if语句后面,为条件不成立时提供备用的执行路径。

python">x = 3
if x > 5:print("x大于5")
else:print("x小于等于5")

在这个例子中,x > 5为假,因此程序会执行else块,输出“x小于等于5”。

1.3 elif语句

elif是“else if”的缩写,用于检查多个条件。当if条件不成立时,程序会继续检查elif条件。如果elif条件成立,则执行对应的代码块。

python">x = 7
if x > 10:print("x大于10")
elif x > 5:print("x大于5但不大于10")
else:print("x小于等于5")

在这个例子中,x > 10为假,接着程序会检查elif x > 5,并发现条件成立,因此输出“x大于5但不大于10”。


2. 循环结构:forwhile 循环

循环结构用于重复执行某段代码。Python提供了两种主要的循环结构:for循环和while循环。

2.1 for循环

for循环常用于遍历可迭代对象(如列表、字符串、字典等),它会依次取出序列中的每一个元素。

python">fruits = ['apple', 'banana', 'cherry']
for fruit in fruits:print(fruit)

输出:

apple
banana
cherry

在这个例子中,for循环遍历fruits列表中的每个元素,并逐个打印出来。

2.2 range()函数

range()函数通常与for循环一起使用,它可以生成一个指定范围的整数序列。

python">for i in range(5):print(i)

输出:

0
1
2
3
4

range(5)生成了从0到4的整数序列。注意,range()的结束值是不包括的,因此会打印0到4。

2.3 while循环

while循环会在条件为真时持续执行,直到条件变为假。

python">x = 0
while x < 5:print(x)x += 1

输出:

0
1
2
3
4

在这个例子中,while循环检查x < 5是否为真,如果为真就执行循环体,每次循环后x加1,直到x不再小于5时结束。

2.4 breakcontinue
  • break:用于提前退出循环,不再继续执行后面的迭代。
  • continue:用于跳过当前循环的剩余部分,进入下一次迭代。
python">for i in range(5):if i == 3:break  # 当i等于3时退出循环print(i)# 输出:
# 0
# 1
# 2
python">for i in range(5):if i == 3:continue  # 当i等于3时跳过本次循环print(i)# 输出:
# 0
# 1
# 2
# 4

3. 函数定义与调用

函数是将代码组织成可重用模块的基本单位。在Python中,函数通过def关键字定义,函数可以接收输入参数并返回结果。

3.1 定义函数

定义一个简单的函数,该函数接收两个参数,计算它们的和并返回结果。

python">def add(x, y):return x + yresult = add(3, 5)
print(result)  # 输出 8
3.2 带有默认值的参数

函数的参数可以有默认值。如果调用函数时没有提供某个参数的值,函数将使用默认值。

python">def greet(name="Guest"):print(f"Hello, {name}!")greet()           # 输出 "Hello, Guest!"
greet("Alice")    # 输出 "Hello, Alice!"

在这个例子中,name参数的默认值为“Guest”。如果调用greet()时不提供name值,函数将使用默认值。

3.3 可变参数

有时函数需要接受任意数量的位置参数或关键字参数。*args**kwargs分别用于接收位置参数和关键字参数。

python">def greet(*names):for name in names:print(f"Hello, {name}!")greet("Alice", "Bob", "Charlie")
# 输出:
# Hello, Alice!
# Hello, Bob!
# Hello, Charlie!
python">def person_info(**info):for key, value in info.items():print(f"{key}: {value}")person_info(name="Alice", age=25)
# 输出:
# name: Alice
# age: 25
3.4 递归函数

递归函数是指函数自己调用自己。递归通常用于解决那些可以分解为子问题的任务,如计算阶乘。

python">def factorial(n):if n == 0:return 1else:return n * factorial(n - 1)print(factorial(5))  # 输出 120

4. 参数与返回值

4.1 函数参数

Python中的函数参数可以是必需的,也可以是可选的。我们可以通过给参数提供默认值,使其变为可选参数。函数也可以接收任意数量的参数,使用*args**kwargs来接收可变数量的参数。

4.2 返回值

函数的返回值是使用return语句返回的。函数可以有多个返回值,通过返回一个元组来实现。

python">def multiple_values():return 1, 2, 3a, b, c = multiple_values()
print(a, b, c)  # 输出 1 2 3

5. 局部变量与全局变量

5.1 局部变量

局部变量是定义在函数内部的变量,只能在该函数内部访问。

python">def my_function():x = 10  # x是局部变量print(x)my_function()  # 输出 10
# print(x)  # 会报错,因为x是局部变量
5.2 全局变量

全局变量是在函数外部定义的,可以在整个程序中访问。全局变量可以在函数中通过global关键字修改。

python">x = 5  # x是全局变量def my_function():global xx = 10  # 修改全局变量xmy_function()
print(x)  # 输出 10

在这个例子中,我们使用global关键字声明x为全局变量,从而在函数内部修改它的值。


比你有钱的人,一定比你努力,比你努力的人,终有一天会比你有钱,生活本来就是平衡的,你不为赚钱付出辛苦,你就得为省钱烦恼


http://www.ppmy.cn/devtools/146886.html

相关文章

基于Hadoop的物品租赁系统的设计与实现-springboot+vue

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

【人工智能机器学习基础篇】——深入详解监督学习之模型评估:掌握评估指标(准确率、精确率、召回率、F1分数等)和交叉验证技术

深入详解监督学习之模型评估 在监督学习中&#xff0c;模型评估是衡量模型性能的关键步骤。有效的模型评估不仅能帮助我们理解模型在训练数据上的表现&#xff0c;更重要的是评估其在未见数据上的泛化能力。本文将深入探讨监督学习中的模型评估方法&#xff0c;重点介绍评估指…

深入探索:使用Java爬虫获取亚马逊商品图片

在电商领域&#xff0c;商品图片是吸引消费者注意力的关键因素之一。对于市场研究人员、数据分析师和开发者来说&#xff0c;能够自动获取商品图片是一个宝贵的技能。本文将详细介绍如何使用Java编写爬虫程序&#xff0c;以获取亚马逊国际站点上按关键字搜索的商品图片。 1. 准…

关闭显示器的脚本

一、用BAT脚本关闭显示器 shutdown_monitor.bat %windir%\System32\scrnsave.scr /s 二、用BAT调PowerShell脚本关闭显示器 RunPowerShellScript.bat echo off powershell -NoProfile -ExecutionPolicy Bypass -File “TurnOffMonitor.ps1” pause TurnOffMonitor.ps1 …

Docker部署neo4j

查询镜像版本 docker search neo4j 以上代码运行会报异常&#xff1a;Error response from daemon: Get https://index.docker.io/v1/search?qneo4j&n25: read tcp 192.168.xxx.xxx:41734->xx.xxx.xx.xxx:443: read: connection reset by peer 这个提示无法访问&…

Vue.js组件开发-怎样将style私有化

Vue.js组件开发中&#xff0c;将style私有可以通过使用<style scoped>来实现的。scoped属性会告诉Vue为这个组件的CSS样式添加一个数据属性&#xff0c;从而确保这些样式只应用于该组件的元素&#xff0c;而不会影响到其他组件或全局样式。 示例&#xff1a; 展示如何使…

Effective C++ 条款39:明智而审慎地使用 private 继承

文章目录 条款39&#xff1a;明智而审慎地使用 private 继承示例 1&#xff1a;private 继承无隐式转换示例 2&#xff1a;private 继承 vs 复合示例 3&#xff1a;empty base 最优化 (EBO)适用场景总结 条款39&#xff1a;明智而审慎地使用 private 继承 private 继承 是一种…

【工具分享】Nessus一键转表格

项目地址&#xff1a;https://github.com/mashirohibiki/Nessus_to_csv 这个项目&#xff08;https://github.com/Bypass007/Nessus_to_report&#xff09;是5年前的老项目了&#xff0c;因为最近工作有做漏扫的工作&#xff0c;于是就找到了这样的项目&#xff0c;但是由于作…