【问题标题】:Create an odd number list创建一个奇数列表
【发布时间】:2021-11-14 21:09:20
【问题描述】:

我想用'while'和'for'制作一个奇数列表

a = []
x = 1
while x < 101:
    if x % 2 != 0:
        a.append(x)
        x = x + 1
print(a)

但是什么都没有发生......并且其他句子中的其他无关代码也没有执行。 我的问题是什么?

【问题讨论】:

  • 注意,如果从 1 开始,每一步只需要加 2,而不是加 1 并测试是否为奇数。
  • 这是一个缩进错字。 x = x + 1 应与 if 对齐。

标签: python list for-loop while-loop numbers


【解决方案1】:

您应该在每次迭代中增加x 的值,而不仅仅是当值是奇数时:

a = []
x = 1
while x < 101:
    if x % 2 != 0:
        a.append(x)
    x += 1
print(a)

虽然这可能是出于学习目的,但请注意,您可以使用 range 函数实现此目的,如下所示:list(range(1,101, 2))

【讨论】:

    【解决方案2】:

    当你增加 x 时,它应该超出 'if' 条件。增量应该发生在while

    a = list()
    x = 1
    while x <101:
        if x%2 != 0:
            a.append(x)
        x += 1
    print(a)
    

    【讨论】:

      【解决方案3】:

      您也可以使用range 函数(用于for 循环),它处理循环中的增量部分,如下所示:
      FOR LOOP:

      odd=[]
      for i in range(101):
          if (i%2!=0):
              odd.append(i)
      print (odd)
      

      WHILE 循环

      odd=[]
      i = 1
      while i<101:
          if i%2 != 0:
              odd.append(i)
          i+=1
      print (odd)
      

      【讨论】:

        【解决方案4】:
        odd = [i for i in range(101) if i%2 != 0]
        print(odd)
        

        【讨论】:

        • 虽然这是一个较短的解决方案,但该问题专门要求使用 while 和 for 的解决方案。
        猜你喜欢
        • 1970-01-01
        • 2020-11-09
        • 2015-03-04
        • 1970-01-01
        • 2014-03-10
        • 1970-01-01
        • 2014-06-29
        • 1970-01-01
        • 2012-03-21
        相关资源
        最近更新 更多