Python学习之循环语句

什么是循环语句呢?简单来说,循环语句就是让代码反复执行某个操作,直到满足某个条件为止。在Python中,最常用的循环语句就是forwhile

一、for 循环

for 循环最常用于遍历(迭代)序列中的元素,遍历的对象可以是列表、元组、字符串或其他可迭代对象。语法如下:

for <variable> in <sequence>:
    <code block>

其中:

  • <variable>:循环变量,用于存储序列中的每个元素
  • <sequence>:要遍历的序列
  • <code block>:循环体,将在每个元素上执行

下图展示了for循环的执行步骤:

(1)首先,初始化循环控制变量。
(2)接着,对循环进行判断。如果判断为真,则进入循环结构;如果判断为假,则退出循环。
(3)执行循环结构内容,并更新循环控制变量。
(4)重复步骤(2)和(3),直到循环条件不再满足为止。

示例代码:

#🌾:遍历列表
my_list = [1, 2, 3, 4, 5]
#🌾:for循环
for i in my_list:
    print(i) 

#输出:
#1
#2
#3
#4
#5 

二、while循环

while 循环在条件为真时重复执行代码块,直到条件变为假为止。语法如下:

while <condition>:
    <code block>

其中:

  • <condition>:循环条件,只要为真,循环就会继续执行
  • <code block>:循环体,将在条件为真的情况下执行

下图展示了while循环的执行步骤:

(1)初始化循环控制变量。
(2)判断循环条件,若为真,则执行循环体;否则,跳过循环体。
(3)执行循环体内容。
(4)重复步骤2和3,直到循环条件不再为真。

示例代码:

#🌾:打印1到5
i = 1
#🌾:while 循环 
while i <= 5:
    print(i)
    i += 1

# 输出:
# 1
# 2
# 3
# 4
# 5

上面讲了for循环和while循环的基本用法,下面这张表格进行简单比较:

特性for循环while循环
适用场景 遍历序列 循环执行条件
语法 for <variable> in <sequence>: while <condition>:
循环控制 break, continue break, continue


三、简单语句组

在 forwhile 循环中,简单语句组可以用缩进来代替循环语句,如果只有一条语句需要执行,可以将该语句放在循环头部,形成简单语句组。例如:

#🌾:等价于 for i in range(10): print(i)
for i in range(10):
    print(i)

#🌾:等价于 while num < 10: num += 1
num = 0
while num < 10:
    num += 1
    print(num)

四、for...else语句

for...else 语句在 for 循环完成后执行 else 代码块,除非在循环中遇到 break 语句。

🌾 语法格式

for item in iterable:
    # 循环主体
else:
    # 循环结束后执行的代码

🌾 示例代码

# 查找列表中是否存在指定元素
fruits = ["apple", "banana", "orange"]
find_flag = False
#🌾 for ... else 结构
for fruit in fruits:
    if fruit == "mango":
        find_flag = True
        break
else:
    print("未找到指定元素")

#🌾 if ...结构
if find_flag:
    print("找到了指定元素")

五、while ...else 语句

while...else 语句在 while 循环条件为假时执行 else 代码块,除非在循环中遇到 break 语句。示例:

🌾语法格式

while <condition>:
    <code block>   # 循环主体
else:
    # 循环结束后执行的代码

🌾示例代码

#🌾:定义变量
count = 0

#🌾:while 循环
while count < 5:
    print(count, " 小于 5")
    count += 1
else:
    print(count, " 不再小于 5")

#输出:
# 0  小于 5
# 1  小于 5
# 2  小于 5
# 3  小于 5
# 4  小于 5
# 5  不再小于 5

while 循环会一直执行直到 count 的值达到 5。当 count 变成 5 时,循环条件变为假值,else 语句块被执行。

六、range() 函数

range() 函数用于生成一个指定范围的数字序列,常用于 for 循环中。

🌾语法如下

range(start, stop, step) 
  • start:序列的起始数字,默认为0
  • stop:序列的结束数字,不包含在序列中
  • step:序列的步长,默认为1

🌾示例代码

#🌾:输出1-10之间的所有奇数
for i in range(1, 10, 2):
    print(i)

#输出:
# 1
# 3
# 5
# 7
# 9

七、break & continue语句

🌾:break语句用于提前终止循环,跳出循环体。

#🌾:循环输出1到10的数字,遇到5时跳出循环
for i in range(1, 11):
    print(i)
    if i == 5:
        break

#循环输出1到10的数字,遇到5时跳出循环:
#1
#2
#3
#4
#5

🌾:continue语句用于跳过当前循环体,直接开始下一次循环。

#🌾:循环输出1到10的数字,只输出偶数
for i in range(1, 11):
    if i % 2 == 1:
        continue
    print(i)

#循环输出1到10的数字,只输出偶数:
#2
#4
#6
#8
#10

八、循环中的 else 子句

else 子句还可以在循环中使用,不仅限于 while 循环,也适用于 for 循环。当循环正常执行完毕(即没有遇到 break 语句)时,else 子句中的代码将被执行。

🌾:在 while 循环中使用 else

#🌾:定义变量
count = 0

#🌾:while 循环
while count < 5:
    print(count, "小于 5")
    count += 1
else:
    print(count, "不再小于 5")

# 输出:
# 0 小于 5
# 1 小于 5
# 2 小于 5
# 3 小于 5
# 4 小于 5
# 5 不再小于 5

🌾:在 for 循环中使用 else:

#🌾:for 循环
for i in range(5):
    print(i)
else:
    print("循环正常结束,没有遇到 break") 
# 输出将会是:
# 0
# 1
# 2
# 3
# 4
# 循环正常结束,没有遇到 break

🌾:没有执行 else 子句的情况:

如果在循环中使用了 break 语句,那么 else 子句中的代码就不会执行:

#🌾:for循环
for i in range(5):
    print(i)
    if i == 2:
        break
else:
    print("循环正常结束,没有遇到 break")
    
# 输出:
# 0
# 1
# 2 

九、pass语句

pass 是一个占位符语句,它不做任何事情。它的作用是在语法上需要语句的地方提供一个空语句,什么也不做。pass 语句通常在代码块中需要语句,但是你暂时不想写任何代码的时候使用。

# 这是一个无限循环,需要使用 Ctrl+C 才能终止
while True:
    pass

# 这是一个简单的 for 循环,但循环体暂时没有内容
for i in range(10):
    pass 

十、实战练习:

前面我们对Python中的循环语句进行了全面的解析,现在附上实战演练,大家可以尝试着敲一下代码,跟着我一起练习。

🌾 1. 使用 while 循环实现一个简单的登录功能,要求用户输入正确的用户名和密码才能登录成功

username = "admin"
password = "123456"

#🌾:while 循环
while True:
    user_input_username = input("请输入用户名:")
    user_input_password = input("请输入密码:")

    if user_input_username == username and user_input_password == password:
        print("登录成功!")
        break
    else:
        print("登录失败,请重新输入!")

🌾 2. 使用 for...else 语句判断一个字符串是否包含指定的子字符串。

string = "Hello, World!"
sub_string = "World"

flag = False

#🌾:for 循环
for char in string:
    if char == sub_string[0]:
        for i in range(len(sub_string)):
            if string[i] != sub_string[i]:
                break
        else:
            flag = True
            break

if flag:
    print("字符串包含指定的子字符串。")
else:
    print("字符串不包含指定的子字符串。")

🌾 3. 使用 while ...else 语句实现一个简单的猜数字游戏。

number = 10
#🌾:while循环
while True:
    guess = int(input("请输入一个数字:"))

    #🌾:if 控制语句
    if guess == number:
        print("恭喜你猜对了!")
        break
    elif guess > number:
        print("你猜的数字大了。")
    else:
        print("你猜的数字小了。")

#🌾:else 
else:
    print("游戏结束!")

posted on 2024-12-04 16:35  梁飞宇  阅读(1358)  评论(0)    收藏  举报