Python快速入门 | python中频繁使用到的语句:for循环语句居然可以结合else骚起来?

小帅b在第一次接触到这样的写法的时候有点发傻:

本文隐藏内容 登陆 后才可以浏览
这就是 for 循环中的 else 的用法,如果你觉得绕的话,多看两遍,自己操作一下就懂了,那么现在,你能否在一个数字列表中,使用 for…else 找出所有的奇数呢?

28 Replies to “Python快速入门 | python中频繁使用到的语句:for循环语句居然可以结合else骚起来?”

  1. wingsdouble说道:

    x = int(input(‘请输入数字:\n’))
    for i in range(2, x+1):
    for j in range(i, i+1):
    if j % 2 == 0:
    print(i, ‘不是奇数,能这样表示:’, i, ‘=’, 2, ‘X’, int(i / 2))
    break
    else:
    print(i, ‘是奇数’)
    else:
    print(i, ‘是偶数’)

  2. lilian说道:

    for i in range(10):
    for x in range(2, 3):
    if i % x == 0:
    print(i, ‘不是奇数’)
    break
    else:
    print(i, ‘是奇数’)

  3. for i in range(1, 100):
    if i % 2:
    print(i, “就是奇数”)
    continue
    else:
    print(i, “是偶数”)
    感觉else那里不管缩进与否不影响结果啊,好像逻辑上都通

  4. kelvinweng说道:

    对于i=2还是不太理解,刚自己测试了一下,写了:

    for i in range(2,2):
    print “1”
    else:
    print “2”
    确实是不执行第一个print,但是会执行第二个print。

    1. 小帅b说道:

      可以这么理解,但是如果循环的过程中遇到了 break 就不会执行 else

  5. x = ”
    for i in range(1,21):
    for x in range(i,i + 1):
    if x % 2 == 0:
    print(x,”是偶数”)
    break
    else:
    print(x,”是奇数”)

  6. shuzhi = int(input(“请输入需要求的数字”))
    for i in range(2, shuzhi):
    for z in range(2, i):
    if i % z == 0: # 能被1和自身之外的数 整除的数就不 是质数
    print(i, “这不是质数”, z, “*”, int(i / z))
    else:
    print(i, “是质数”)

    这个输入5的时候 怎么执行到4就停止了呢

  7. wuxiaoyong说道:

    for i in range(1, 20):
    —-for x in range(i, i+1):
    ——–if x % 2 == 0:
    ————break
    —-else:
    ——–print(‘奇数:’, x)

  8. 风烟飘火说道:

    所以说这个过滤功能如果想要全面的话只能套用双层for?那对于奇数过滤来说双层for的写法是不是不如ifelse呢

    1. 小帅b说道:

      主要还是为了让你体会下 for..break…else 的用法。

  9. sunshine说道:

    for i in range(0,21):
    —for j in range(i,21):
    ——if i % 2 == 0:
    ——–break
    —else:
    ——–print(i,’这是奇数’)

  10. sunshine说道:

    for i in range(0,21):
    for j in range(i,21):
    if i % 2 == 0:
    break
    else:
    print(i,’这是奇数’)

  11. 我就躺着说道:

    那请问为什么不直接用for里面用if else呢,是不是因为两层循环里可以迭代不同的对象?

    1. 小帅b说道:

      可以用 if…else, 只是想让你们体会一下 for..break…else 的用法。

  12. Hans·Rain说道:

    重写一遍
    for i in range(1, 51):
    ____for j in range(i, 51):
    ________if i % 2 == 0:
    ____________print(“偶数”, i)
    ____________break
    ____else:
    ________print(“奇数”, i)

    1. xdall说道:

      这个是没有问题的写法 但是 不是最简单的写法

    2. Mr-13th说道:

      感觉双层for循环搭配else才具有过滤功能

  13. Hans·Rain说道:

    大概意思懂了,但是让我用for else写一个判断全部奇数的我有点写不出来,思维定势在用for循环中用if else来判断,大家有答案可以让我借鉴一下嘛

    1. Hans·Rain说道:

      for i in range(1, 51):
      for j in range(i, 51):
      if i % 2 == 0:
      print(“偶数”, i)
      break
      else:
      print(“奇数”, i)

      1. Hans·Rain说道:

        哇 这个论坛好奇葩,我有缩进的啊,而且评论不能回复图片嘛

回复 xibie 取消回复