【Python】基础语法体系:两种常用语句


个人主页:【😊个人主页】

系列专栏:【❤️Python】


文章目录


前言

Python语句是构成Python程序的基本单元,用于执行各种操作,如变量赋值、条件判断、循环迭代、函数调用等,因此在学习Python过程中,熟练的掌握各种语句的运用是不可避免的环节。今天我们就在详细的介绍两种Python最常用的语句:条件语句,循环语句,想了解更多Python内容请订阅内容【Python系列教程】

条件语句

Python中的条件语句允许程序根据条件(或称为"表达式")的真假来决定执行哪段代码。Python中主要有两种条件语句:if 语句if-else 语句,以及更复杂的 if-elif-else 结构。

注:

  • 条件表达式的结果必须是布尔值(True 或 False)。Python中许多表达式都可以隐式地转换为布尔值,例如,非零数值被视为True,零和空对象(如空字符串""、空列表[]、空字典{}等)被视为False。
  • 缩进在Python中非常重要,它决定了代码块的开始和结束。条件语句下的代码块必须正确缩进。
  • elif 和 else 语句是可选的,但 if 语句后面必须跟一个冒号(:)和缩进的代码块。

动态实例

if语句

if 语句后面跟一个条件表达式,如果条件为真(True),则执行缩进的代码块。

python 复制代码
x = 10  
if x > 5:  
    print("x is greater than 5")

if-else 语句

if-else 语句用于在条件为真时执行一个代码块,如果条件为假(False),则执行另一个代码块。

python 复制代码
x = 3  
if x > 5:  
    print("x is greater than 5")  
else:  
    print("x is not greater than 5")


注:当if有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于>(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。

if-elif-else 语句

if-elif-else 语句是 if 和 else 的扩展,允许在多个条件中进行选择。elif 是 "else if" 的缩写,用于检查多个表达式是否为真,并在为真时执行相应的代码块。

python 复制代码
x = 10  
if x > 20:  
    print("x is greater than 20")  
elif x > 10:  
    print("x is greater than 10 but less than or equal to 20")  
else:  
    print("x is 10 or less")


注:python并不支持 switch 语句,多个条件判断,只能用 elif 来实现,如果判断需要多个条件需同时判断时,可以使用 or (或),表示两个条件有一个成立时判断条件成功;使用 and (与)时,表示只有两个条件同时成立的情况下,判断条件才成功。

嵌套条件语句

条件语句还可以嵌套使用,即在一个条件语句的代码块内部再包含一个或多个条件语句。

python 复制代码
x = 15  
y = 20  
if x > 10:  
    if y > 15:  
        print("Both x and y are greater than 15")  
    else:  
        print("x is greater than 10, but y is not greater than 15")  
else:  
    print("x is 10 or less")

循环语句

循环语句允许我们执行一个语句或语句组多次,它通常允许你重复执行一段代码块,直到满足特定的条件。Python中有两种基本的循环语句:for 循环while 循环

注:在使用 while 循环时,必须确保循环条件在某个时刻会变为假,以避免创建无限循环。
for 循环通常比 while 循环更简洁,特别是当你知道需要遍历的序列时。
可以通过 break 语句来提前退出循环,通过 continue 语句来跳过当前循环的剩余部分并继续下一次迭代。
循环还可以嵌套使用,即在一个循环内部再定义一个或多个循环。

for循环

for 循环用于遍历任何序列(如列表、元组或字符串)或其他可迭代对象。它通常用于在你知道需要遍历的序列长度时使用。

python 复制代码
# 遍历列表  
fruits = ["apple", "banana", "cherry"]  
for fruit in fruits:  
    print(fruit)  
  
# 遍历字符串  
for char in "hello":  
    print(char)  
  
# 使用range()函数遍历数字序列  
for i in range(5):  # 默认从0开始,到4结束  
    print(i)  
  
# 使用range()函数指定起始和结束值  
for i in range(1, 6):  # 从1开始,到5结束  
    print(i)  
  
# 使用range()函数指定起始、结束和步长  
for i in range(0, 10, 2):  # 从0开始,到9结束,步长为2  
    print(i)

在使用Python的for循环时,有几个注意事项可以帮助你更有效地编写代码并避免常见的错误。

迭代对象 :确保你用于迭代的对象是可迭代的。在Python中,列表、元组、字符串、字典(迭代其键)、集合以及任何定义了__iter__()或__getitem__()方法的对象都是可迭代的。如果尝试对非可迭代对象使用for循环,将会引发TypeError。
迭代变量 :在for循环的头部,迭代变量(或称为循环变量)在每次迭代时会被赋予序列中的下一个元素。这个变量只在该循环的块内部可见。如果你需要在循环外部访问该值,应该考虑使用另一个变量来存储它。
修改迭代对象 :在迭代过程中修改迭代对象(如列表)时要特别小心。如果修改导致迭代器的长度发生变化(如添加或删除元素),可能会导致跳过某些元素或引发RuntimeError(如果迭代器在迭代过程中被修改了)。如果需要修改列表,考虑先迭代其副本或使用其他逻辑。
嵌套循环 :当使用嵌套循环时,确保你理解外层循环和内层循环之间的关系,以及它们如何一起工作。嵌套循环的每一层都会创建一个新的作用域,其中可以定义自己的变量。
无限循环:如果for循环的条件永远不会变为假(尽管在标准的for循环中这不太常见,因为它通常依赖于可迭代对象的长度),或者循环体内部没有适当的终止条件,那么可能会创建无限循环。确保你的循环有明确的退出条件。

while循环

while 循环在给定条件为真时重复执行一段代码块。这在你不知道需要循环多少次时非常有用。
其基本形式为:

python 复制代码
while 判断条件(condition):
    执行语句(statements)......

动态实例


python 复制代码
# 简单的while循环  
count = 0  
while count < 5:  
    print(count)  
    count += 1  
  
# 使用while循环遍历列表(不推荐,因为不直观且难以控制)  
fruits = ["apple", "banana", "cherry"]  
i = 0  
while i < len(fruits):  
    print(fruits[i])  
    i += 1

循环条件:确保你的循环条件在某种情况下会变为假(False),以避免创建无限循环。无限循环会消耗大量系统资源,并使程序挂起。

循环变量更新:在while循环内部,确保有一个或多个语句用于更新循环变量(或影响循环条件的其他变量)。

循环控制语句:使用break语句来提前退出循环。这在你满足某个条件时不再需要继续迭代时非常有用。使用continue语句来跳过当前迭代的剩余部分,并继续下一次迭代。

嵌套循环:如果你的while循环嵌套在另一个循环(无论是while循环还是for循环)中,确保你理解这两个循环之间的相互作用。

性能考虑:对于大型数据集或复杂计算,while循环可能会变得效率低下。在这种情况下,考虑使用更高效的算法或数据结构,或者将计算分解为更小的、可管理的部分。如果可能的话,使用向量化操作(例如NumPy库中的操作)来替代循环,这通常可以显著提高性能。

嵌套循环

python 复制代码
# 打印一个5x5的星号矩阵  
for i in range(5):  
    for j in range(5):  
        print("*", end=" ")  
    print()  # 换行
相关推荐
ac-er8888几秒前
PHP网络爬虫常见的反爬策略
开发语言·爬虫·php
翔云API4 分钟前
PHP静默活体识别API接口应用场景与集成方案
人工智能
爱吃喵的鲤鱼10 分钟前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
浊酒南街11 分钟前
吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)4.9-4.10
人工智能·深度学习·神经网络·cnn
Tony聊跨境26 分钟前
独立站SEO类型及优化:来检查这些方面你有没有落下
网络·人工智能·tcp/ip·ip
懒惰才能让科技进步32 分钟前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
DARLING Zero two♡36 分钟前
关于我、重生到500年前凭借C语言改变世界科技vlog.16——万字详解指针概念及技巧
c语言·开发语言·科技
Gu Gu Study39 分钟前
【用Java学习数据结构系列】泛型上界与通配符上界
java·开发语言
yyfhq40 分钟前
sdnet
python
Qspace丨轻空间43 分钟前
气膜场馆:推动体育文化旅游创新发展的关键力量—轻空间
大数据·人工智能·安全·生活·娱乐