鱼C论坛

 找回密码
 立即注册
查看: 1141|回复: 14

[已解决]请问如何分辨while循环跟for循环?两者分别在什么情况下使用,小白有点不能理解。

[复制链接]
发表于 2020-5-25 13:00:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
RT



最佳答案
2020-5-25 13:23:42
本帖最后由 Twilight6 于 2020-5-25 13:28 编辑
Aber 发表于 2020-5-25 13:19
听你这么讲while好像有点眉目了,但是for循环目前接触的很少,还是不太理解


假设你要把 一个列表内含有  o 的英文单词都打印出来 这时候用for 就比较方便了  因为for 可以直接遍历列表
  1. ls = ['dog','pig','egg','cool','windows']
  2. for i in ls:
  3.     if 'o' in i:
  4.         print(i)
复制代码

而用while就比较麻烦些,我指的是一般人的第一感觉哈哈 ,如果有些骚套路就算了
看这代码 又要用 切片 又要判断 while 条件  又要重新初始化一个值,所以这种类似的题目应该第一时间想到用for循环
  1. ls = ['dog','pig','egg','cool','windows']
  2. num = 0
  3. while num < len(ls):
  4.     if 'o' in ls[num]:
  5.         print(ls[num])
  6.     num += 1
复制代码

PS:举例子而已,不用太较真如果怎么怎么写更好
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 13:01:33 | 显示全部楼层
什么东东,怎么还没回答就已解决0.0
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 13:06:36 | 显示全部楼层
for 循环主要用于遍历容器类或文件内容比较常用,还有明确循环次数,用for也比较方便

while 主要用于不明确循环次数,而要一直循环到条件不成立时候
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 13:06:41 | 显示全部楼层
for是遍历,while是符合条件进入循环,差别不小
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-25 13:19:50 | 显示全部楼层
Twilight6 发表于 2020-5-25 13:06
for 循环主要用于遍历容器类或文件内容比较常用,还有明确循环次数,用for也比较方便

while 主要用于不 ...

听你这么讲while好像有点眉目了,但是for循环目前接触的很少,还是不太理解
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 13:23:42 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-5-25 13:28 编辑
Aber 发表于 2020-5-25 13:19
听你这么讲while好像有点眉目了,但是for循环目前接触的很少,还是不太理解


假设你要把 一个列表内含有  o 的英文单词都打印出来 这时候用for 就比较方便了  因为for 可以直接遍历列表
  1. ls = ['dog','pig','egg','cool','windows']
  2. for i in ls:
  3.     if 'o' in i:
  4.         print(i)
复制代码

而用while就比较麻烦些,我指的是一般人的第一感觉哈哈 ,如果有些骚套路就算了
看这代码 又要用 切片 又要判断 while 条件  又要重新初始化一个值,所以这种类似的题目应该第一时间想到用for循环
  1. ls = ['dog','pig','egg','cool','windows']
  2. num = 0
  3. while num < len(ls):
  4.     if 'o' in ls[num]:
  5.         print(ls[num])
  6.     num += 1
复制代码

PS:举例子而已,不用太较真如果怎么怎么写更好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 13:32:22 | 显示全部楼层
for循环是迭代循环,while循环是条件循环,这是二者最大的区别。

for循环能干的事,while都能干,但是某些情况下 ,for循环要比while循环简洁的多。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 13:32:39 From FishC Mobile | 显示全部楼层
绝大多数情况下是通用的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-25 13:47:19 | 显示全部楼层
Twilight6 发表于 2020-5-25 13:23
假设你要把 一个列表内含有  o 的英文单词都打印出来 这时候用for 就比较方便了  因为for 可以直接遍历 ...

受教了,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 13:48:21 | 显示全部楼层

???你这不是 已解决的帖子吗?怎么还能给我设置最佳的。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-25 13:52:46 | 显示全部楼层
Twilight6 发表于 2020-5-25 13:48
???你这不是 已解决的帖子吗?怎么还能给我设置最佳的。。。。

没有呀、 你看到是已解决吗?

哈哈哈
快去提交BUG
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 13:53:21 | 显示全部楼层
Aber 发表于 2020-5-25 13:52
没有呀、 你看到是已解决吗?

哈哈哈

对啊 所以我一进帖就问你 怎么没设最佳显示的确实已解决.。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 14:17:25 | 显示全部楼层
假设有一个 for 循环:
  1. for i in [1,2,3]:
  2.    print(i)
复制代码
那么他就可以写成:
  1. __it=[1,2,3].__iter__()

  2. while True:
  3.    try:
  4.       i=__it.__next__()
  5.    except StopIteration:
  6.       break
  7.    print(i)

  8. del __it
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-25 14:22:01 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-25 14:17
假设有一个 for 循环:那么他就可以写成:

{:10_245:
一共10行代码
有7行里面的东西我还没见过
对我太不友好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-25 14:26:26 | 显示全部楼层
Aber 发表于 2020-5-25 14:22
{:10_245:
一共10行代码
有7行里面的东西我还没见过

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-20 06:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表