首页 > 解决方案 > Python 使用 For 循环在列表中查找偶数,然后将它们乘以 2

问题描述

所以我有一个脚本需要读取列表中的数字,并告诉我这些数字中哪些是奇数,哪些是偶数,如果数字是偶数,我需要将它乘以 1,然后乘以 2。我已经很接近了,但我似乎无法弄清楚我在哪里犯了错误。任何帮助将不胜感激!

numbers = [1,2,3,4,5]
for n in numbers:
    if n%2 == 0:
        print(n,'is an even number.')
        for n in range(2,5,2):
            product = n
            print('Multiplying by 1 gives',product)
            product = product*2
            print('Multiplying by 2 gives', product)
    else:
        print(n,'is an odd number.')

我得到以下输出:

1 是奇数。
2是偶数。
乘以 1 得到 2
乘以 2 得到 4
乘以 1 得到 4
乘以 2 得到 8
3 是奇数。
4是偶数。
乘以 1 得到 2
乘以 2 得到 4
乘以 1 得到 4
乘以 2 得到 8
5 是奇数。

而我想要的输出应该是这样的:

1 是奇数。
2是偶数。
乘以 1 得到 2
乘以 2 得到 4
3 是奇数。
4是偶数。
乘以 1 得到 4
乘以 2 得到 8
5 是奇数。

标签: pythonfor-loop

解决方案


简单地删除for n in range(2,5,2):for 循环会给你想要的结果,它会覆盖 的值n,从而给你错误的结果。

numbers = [1, 2, 3, 4, 5]
for n in numbers:
    if n % 2 == 0:
        print(n, 'is an even number.')
        product = n
        print('Multiplying by 1 gives', product)
        product = product*2
        print('Multiplying by 2 gives', product)
    else:
        print(n, 'is an odd number.')

推荐阅读