【问题标题】:Write a for loop that iterates over to_ten and prints out whether the number is even or odd编写一个 for 循环,遍历 to_ten 并打印出数字是偶数还是奇数
【发布时间】:2020-06-09 18:58:26
【问题描述】:
to_ten=['1','2','3','4','5','6','7','8','9','10']

for i in range(10):

    if i %2==0:
        i='Number is even'
    else: i='Number is odd'
print(i)

创建一个名为 to_ten 的列表,其中包含 1-10 的数字。编写一个循环遍历 to_ten 并打印出该数字是偶数还是奇数。请帮助我了解如何为 1-10 列表中的每个数字获取关于它是偶数还是奇数的声明。

【问题讨论】:

  • 在代码 sn-p 中,i 是什么,您从哪里获得 sn-p?它似乎包含接近解决方案的代码。请提出一个准确的问题或您在尝试解决问题时遇到的任何错误。
  • @DavidWierichs 根据代码很清楚 i 是什么,但似乎 OP 没有使用他的初始列表进行迭代,他们出于某种原因将 i 的值覆盖为第一次迭代的字符串
  • 我把它改成了这样:to_ten=[1,2,3,4,5,6,7,8,9,10] for list_element in to_ten: if list_element %2==0: list_element='数字是偶数' else: list_element='数字是奇数' print(list_element)
  • 但它仍然只给我第一个元素,而不是为每个数字指定为偶数或奇数的整个列表

标签: python for-loop


【解决方案1】:
to_ten=['1','2','3','4','5','6','7','8','9','10']

for i in to_ten:
    if int(i)%2 == 0:
        print(f'{i} is even')
    else:
        print(f'{i} is odd')

输出:

1 is odd
2 is even
3 is odd
4 is even
5 is odd
6 is even
7 is odd
8 is even
9 is odd
10 is even

【讨论】:

    【解决方案2】:

    您的代码几乎是正确的,

    但您需要缩进 print 语句,以便程序在每次迭代中打印数字。

    并且,range(num) 将从 0 开始,并且该 num 不会包含在迭代中。

    [1,2,3,4,5,6,7,8,9,10] 等价于 python 中的range(1,11)

    for i in range(1,11):
        if i % 2 == 0: # If the number divided by two leaves no remainder:
            print(f'{i} is even')
        else:
            print(f'{i} is odd')
    

    输出:

    1 is odd
    2 is even
    3 is odd
    4 is even
    5 is odd
    6 is even
    7 is odd
    8 is even
    9 is odd
    10 is even
    

    【讨论】:

      【解决方案3】:

      您的代码存在三个问题:首先,您将range() 替换为to_ten,因此实际上并没有按照所述实现问题;你让to_ten 成为liststr 而不是listint;您的 print(i) 语句的顺序和缩进错误。 @biplobbiswas 的解决方案很好地解决了所有这些小问题。 (+1)

      我们可以通过将to_ten 设为listint 来简化问题,并让Python 为我们生成它,以避免错误。我们还可以使用i % 2 的结果作为索引,而不是使用一系列if 语句显式测试它:

      to_ten = [*range(1, 11)]  # a list containing the numbers from 1-10
      
      for number in to_ten:
          print("{} is {}".format(number, ['even', 'odd'][number % 2]))
      

      有很多方法可以解决这样的问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        • 1970-01-01
        • 2015-05-31
        • 2015-12-26
        • 2021-02-09
        • 2018-04-04
        • 1970-01-01
        相关资源
        最近更新 更多