Python中for与while循环的区别与用法是怎样的?

2026-06-11 06:452阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1092个文字,预计阅读时间需要5分钟。

Python中for与while循环的区别与用法是怎样的?

使用for循环遍历+for i in xxx: +代码块+i:是一个变量,是把xxx中的某一个值取出来存到i里面+xxx:可以是序列(包括:列表、元组、字符串等),也可以是迭代对象+for i in 'abc': +print(i).

Python中for与while循环的区别与用法是怎样的?

for循环遍历

for i in xxx:

代码块

i:是一个变量,是把xxx里面的某一个值取出来存到i里面

xxx:可以是序列(序列包括:列表、元祖、字符串),还可以是迭代对象

>>> for i in "abc": ... print(i) ... a b c

#调试技巧 例题:求列表[1,2,3,4]的和 打印出每一步的结果

>>> result =0
>>> for i in [1,2,3,4]:
... print("i的取值",i)
... result+=i
... print("计算结果",result)
...
i的取值 1
计算结果 1
i的取值 2
计算结果 3
i的取值 3
计算结果 6
i的取值 4
计算结果 10
>>> print(result)
10

#通过索引循环遍历

>>> fruits = [‘banana‘,‘apple‘,‘mango‘]
>>> for index in range(len(fruits)):
... print(fruits[index])
...
banana
apple
mango
>>>

以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。

while循环遍历

while True:

代码块

True:条件,只要条件是True 代码块会永远执行

死循环应用场景:

1 服务器端:一般死循环

2 你也不知道循环多少次的时候就要用到死循环

>>> a = 0 >>> while a<=5: ... print(a) ... a+=1 #相当于a=a+1 ... 0 1 2 3 4 5


#练习题:

用死循环实现:

  用户输入数字,判断是奇数还是偶数

  当输入的数字是100的时候,结束第循环

>>> while 1:
... user_num =int(input("请输入一个数字:"))
... if user_num%2==0:
... print("%s 是偶数" %user_num) #模板字符串
... else:
... print("%s 是奇数" %user_num)
... if user_num==100:
... break
...
请输入一个数字:2
2 是偶数
请输入一个数字:3
3 是奇数
请输入一个数字:4
4 是偶数
请输入一个数字:5
5 是奇数
请输入一个数字:6
6 是偶数
请输入一个数字:100
100 是偶数
>>>

break和continue

break:彻底结束循环
continue:跳出本次循环,执行下一次

对比示例:

>>> for i in range(10): ... if i==3: ... break #整个for循环结束,>=3的数字不在打印 ... print(i) ... 0 1 2 >>> for i in range(10): ... if i==3: ... continue #跳过i==3这次循环不打印,for循环继续后面的循环 ... print(i) ... 0 1 2 4 5 6 7 8 9 >>>

for/while...else...搭配的诡异用法:

#没有break
>>> for i in range(5): ... if i == 3: ... continue ... print(i) ... else: #else语句被执行 ... print("no break") ... 0 1 2 4 no break

#有break

>>> for i in range(5):
... if i == 3:
... break
... print(i)
... else: #else没有被执行
... print("no break")
...
0
1
2
>>>

总结:只要循环体内部没有执行break就会执行else部分的代码

例: 题目:[1,2,3,4,5,7]你输入一个数字,判断一下是否在这个list中,执行3次这个逻辑。 算法: 1、循环3次 (for) for i in range(3) 2、输入一个数字(input),存到某个变量里 user_num =int(input("请输入一个数字:")) 3、判断这个数字在不在[1,2,3,4,5,7] desc_list =[1,2,3,4,5,7] 4、如果在,打印一下;不再也打印一下。 if user_num in desc_list:   print("%s 在" %user_num) else:   print("%s 不在" %user_num ) 实现: >>> desc_list =[1,2,3,4,5,7] >>> for i in range(3): ... user_num =int(input("请输入一个数字:")) ... if user_num in desc_list: ... print("%s 在" %user_num)#模板字符串表达方式 "%s a number" %1 ‘1 a number‘ ... else: ... print("%s 不在" %user_num) ... 请输入一个数字:5 5 在 请输入一个数字:2 2 在 请输入一个数字:1 1 在 >>>

本文共计1092个文字,预计阅读时间需要5分钟。

Python中for与while循环的区别与用法是怎样的?

使用for循环遍历+for i in xxx: +代码块+i:是一个变量,是把xxx中的某一个值取出来存到i里面+xxx:可以是序列(包括:列表、元组、字符串等),也可以是迭代对象+for i in 'abc': +print(i).

Python中for与while循环的区别与用法是怎样的?

for循环遍历

for i in xxx:

代码块

i:是一个变量,是把xxx里面的某一个值取出来存到i里面

xxx:可以是序列(序列包括:列表、元祖、字符串),还可以是迭代对象

>>> for i in "abc": ... print(i) ... a b c

#调试技巧 例题:求列表[1,2,3,4]的和 打印出每一步的结果

>>> result =0
>>> for i in [1,2,3,4]:
... print("i的取值",i)
... result+=i
... print("计算结果",result)
...
i的取值 1
计算结果 1
i的取值 2
计算结果 3
i的取值 3
计算结果 6
i的取值 4
计算结果 10
>>> print(result)
10

#通过索引循环遍历

>>> fruits = [‘banana‘,‘apple‘,‘mango‘]
>>> for index in range(len(fruits)):
... print(fruits[index])
...
banana
apple
mango
>>>

以上实例我们使用了内置函数 len() 和 range(),函数 len() 返回列表的长度,即元素的个数。 range返回一个序列的数。

while循环遍历

while True:

代码块

True:条件,只要条件是True 代码块会永远执行

死循环应用场景:

1 服务器端:一般死循环

2 你也不知道循环多少次的时候就要用到死循环

>>> a = 0 >>> while a<=5: ... print(a) ... a+=1 #相当于a=a+1 ... 0 1 2 3 4 5


#练习题:

用死循环实现:

  用户输入数字,判断是奇数还是偶数

  当输入的数字是100的时候,结束第循环

>>> while 1:
... user_num =int(input("请输入一个数字:"))
... if user_num%2==0:
... print("%s 是偶数" %user_num) #模板字符串
... else:
... print("%s 是奇数" %user_num)
... if user_num==100:
... break
...
请输入一个数字:2
2 是偶数
请输入一个数字:3
3 是奇数
请输入一个数字:4
4 是偶数
请输入一个数字:5
5 是奇数
请输入一个数字:6
6 是偶数
请输入一个数字:100
100 是偶数
>>>

break和continue

break:彻底结束循环
continue:跳出本次循环,执行下一次

对比示例:

>>> for i in range(10): ... if i==3: ... break #整个for循环结束,>=3的数字不在打印 ... print(i) ... 0 1 2 >>> for i in range(10): ... if i==3: ... continue #跳过i==3这次循环不打印,for循环继续后面的循环 ... print(i) ... 0 1 2 4 5 6 7 8 9 >>>

for/while...else...搭配的诡异用法:

#没有break
>>> for i in range(5): ... if i == 3: ... continue ... print(i) ... else: #else语句被执行 ... print("no break") ... 0 1 2 4 no break

#有break

>>> for i in range(5):
... if i == 3:
... break
... print(i)
... else: #else没有被执行
... print("no break")
...
0
1
2
>>>

总结:只要循环体内部没有执行break就会执行else部分的代码

例: 题目:[1,2,3,4,5,7]你输入一个数字,判断一下是否在这个list中,执行3次这个逻辑。 算法: 1、循环3次 (for) for i in range(3) 2、输入一个数字(input),存到某个变量里 user_num =int(input("请输入一个数字:")) 3、判断这个数字在不在[1,2,3,4,5,7] desc_list =[1,2,3,4,5,7] 4、如果在,打印一下;不再也打印一下。 if user_num in desc_list:   print("%s 在" %user_num) else:   print("%s 不在" %user_num ) 实现: >>> desc_list =[1,2,3,4,5,7] >>> for i in range(3): ... user_num =int(input("请输入一个数字:")) ... if user_num in desc_list: ... print("%s 在" %user_num)#模板字符串表达方式 "%s a number" %1 ‘1 a number‘ ... else: ... print("%s 不在" %user_num) ... 请输入一个数字:5 5 在 请输入一个数字:2 2 在 请输入一个数字:1 1 在 >>>