错误:并非在格式化字符串时转换了所有参数

问题描述 投票:0回答:3

我开始学习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())

但是很遗憾,它显示了以下错误您能否告诉我该错误的含义以及如何解决该错误?

python string for-loop types converters
3个回答
0
投票

尝试一下:

def is_even_num():
    numbers=map(int, input("Please enter numbers:").split(" "))
    enum = []
    for n in numbers:
        if n % 2 == 0:
            enum.append(n)
    return enum
print(is_even_num())

在Python中使用list comprehension

print([i for i in map(int, input("Please enter the number: ").split(" ")) if not i % 2])

0
投票

numbers=list(input("Please enter numbers:"))会将每个字符转换为列表中的元素,即,如果您输入1 2 3 4,则每个空格也将是一个元素。尝试

numbers=input("Please enter numbers:").split()

这将省略空格。

[此外,您正在尝试将字符串文字与整数进行比较。在您的循环中,将n解析为整数,即

if int(n) % 2 == 0:

0
投票
numbers=[int(i) for i in input().split()]
def is_even_num():

    enum = []
    for n in numbers:
        if n % 2 == 0:
            enum.append(n)
    return enum
print(is_even_num())

输入存储为字符串,在对其执行任何算术运算之前,我们需要将其类型转换为整数。

© www.soinside.com 2019 - 2024. All rights reserved.