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

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

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

1. 条件判断语句:ifelseelif

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

1.1 if语句

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

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

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

1.2 else语句

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

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条件成立,则执行对应的代码块。

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

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

输出:

apple
banana
cherry

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

2.2 range()函数

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

for i in range(5):
    print(i)

输出:

0
1
2
3
4

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

2.3 while循环

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

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:用于跳过当前循环的剩余部分,进入下一次迭代。
for i in range(5):
    if i == 3:
        break  # 当i等于3时退出循环
    print(i)

# 输出:
# 0
# 1
# 2
for i in range(5):
    if i == 3:
        continue  # 当i等于3时跳过本次循环
    print(i)

# 输出:
# 0
# 1
# 2
# 4

3. 函数定义与调用

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

3.1 定义函数

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

def add(x, y):
    return x + y

result = add(3, 5)
print(result)  # 输出 8
3.2 带有默认值的参数

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

def greet(name="Guest"):
    print(f"Hello, {name}!")

greet()           # 输出 "Hello, Guest!"
greet("Alice")    # 输出 "Hello, Alice!"

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

3.3 可变参数

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

def greet(*names):
    for name in names:
        print(f"Hello, {name}!")

greet("Alice", "Bob", "Charlie")
# 输出:
# Hello, Alice!
# Hello, Bob!
# Hello, Charlie!
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 递归函数

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

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n - 1)

print(factorial(5))  # 输出 120

4. 参数与返回值

4.1 函数参数

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

4.2 返回值

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

def multiple_values():
    return 1, 2, 3

a, b, c = multiple_values()
print(a, b, c)  # 输出 1 2 3

5. 局部变量与全局变量

5.1 局部变量

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

def my_function():
    x = 10  # x是局部变量
    print(x)

my_function()  # 输出 10
# print(x)  # 会报错,因为x是局部变量
5.2 全局变量

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

x = 5  # x是全局变量

def my_function():
    global x
    x = 10  # 修改全局变量x

my_function()
print(x)  # 输出 10

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


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


http://www.kler.cn/a/459244.html

相关文章:

  • Windows11安装Oracle11g以及plsqldev工具连接配置
  • 【AI学习】Transformer深入学习(二):从MHA、MQA、GQA到MLA
  • PTA数据结构作业一
  • MySQL 05 章——排序与分页
  • 4.Web安全——JavaScript基础
  • Cause: java.sql.SQLException: sql injection violation, comment not allow异常问题处理
  • 在WSL的系统中配置免密和GitHub传输数据(SSH)
  • 自研国产零依赖前端UI框架实战008 用户表单以及随机ID
  • 网络原理(六): UDP 协议
  • nacos-gateway动态路由
  • Java工具类Arrays
  • GPIO相关寄存器,点灯
  • 一次 MySQL IF 函数的误用导致的生产小事故
  • linux上虚拟机显示网络不可用的解决方法
  • 建立一个Macos载入image的实例含界面
  • docker 部署mysql8
  • MySQL如何执行.sql 文件:详细教学指南
  • 今日总结 2024-12-30
  • LeetCode热题100-两数之和【JavaScript讲解】
  • 信息系统常见的系统架构
  • 老鑫网络安全培训课程收费多少钱
  • 知识图谱+大模型:打造全新智慧城市底层架构
  • 数据链路层知识要点
  • VSCode 插件开发实战(十): 环境变量Env设置与管理
  • svn分支相关操作(小乌龟操作版)
  • 添加购物车业务代码