python - 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 是奇数。
解决方案
简单地删除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.')
推荐阅读
- flutter - Flutter AnimatedContainer 从 RightToLeft 转换
- python - 如何根据属性设置geojson的样式
- python - 想要打印随机字符串而不重复一次
- apache-spark - spark中from_utc_timestamp函数和时区的奇怪问题
- azure - 如何判断 Azure IoT 中心设备孪生的更新何时完成?
- python - 'pyuic5' 不是内部或外部命令、可运行程序或批处理文件
- python - 如何使用其他数据框列将多列添加到 python 数据框
- java - 通过 maven 命令使用 beanshell 运行 testng gropus 时出错
- apache-spark - 无法启动 spark-shell 未能提交 spark-submit
- django - 如何根据应用于字段的函数从模型中获取列表而不更改表中的值