Python学习之循环语句
什么是循环语句呢?简单来说,循环语句就是让代码反复执行某个操作,直到满足某个条件为止。在Python中,最常用的循环语句就是for
和while
。
一、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 |
三、简单语句组
在 for
、while
循环中,简单语句组可以用缩进来代替循环语句,如果只有一条语句需要执行,可以将该语句放在循环头部,形成简单语句组。例如:
#🌾:等价于 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("游戏结束!")