python - 错误:字符串格式化期间并非所有参数都转换了
问题描述
我开始学习 Python 我编写了一个代码来从用户那里获取数字列表并显示偶数:
numbers=list(input("Please enter numbers:"))
def is_even_num():
enum = []
for n in numbers:
if n % 2 == 0:
enum.append(n)
return enum
print(is_even_num())
但不幸的是它显示以下错误你能告诉我错误是什么意思,我该如何解决这个错误?
解决方案
但不幸的是它显示以下错误你能告诉我错误是什么意思,我该如何解决这个错误?
当解释if n % 2 == 0:
器尝试使用%
. input()
返回一个 str 对象,如果你将它传递给list
构造函数,它将在你的字符串中形成一个字符列表。
因此,numbers=list(input("Please enter numbers:"))
将形成一个str
对象列表(例如,如果您传递1 2 3
给您的程序,它会将其转换为 str 对象列表:)['1', ' ', '2', ' ', '3']
。
您需要将它们转换为int
使用int
构造函数。如果您可以将程序中的第一行更改为numbers=list(map(int, input("Please enter numbers: ").split(" ")))
,它将开始工作
尝试这个:
numbers=list(map(int, input("Please enter numbers: ").split(" ")))
def is_even_num():
enum = []
for n in numbers:
if n % 2 == 0:
enum.append(n)
return enum
print(is_even_num())
使用列表理解做同样事情的 Pythonic 方式:
print([i for i in map(int, input("Please enter the number: ").split(" ")) if not i % 2])
推荐阅读
- solver - 您如何在 Cubical Agda 中使用环求解器?
- python - 动态规划问题的记忆。为什么以下解决方案不起作用?
- java - 如何在以下 lambda exp 中添加同步?
- r - 如何在 ggplot2 中将图例键字形的形状更改为六边形?
- python - 检查两个列表中项目的接近外观 - Python
- c# - 如何使用 Unity 在 iOS 上的下载文件夹中保存文件
- mongodb - Mongodb 聚合 - 在嵌套数组中使用 $addFields 来获取真/假
- objective-c - Metal 计算值与 CPU 值不同
- sql - 使用 peewee 创建子查询,在子查询结果上使用 `.select`
- c# - C# .NET 如何通过 Modbus 从 PLC 连续读取输入