Python 循环内部的逻辑运算符,不工作

Python 循环内部的逻辑运算符,不工作,python,Python,我目前正在学习Python,我已经被这个问题困扰了几个小时。我的任务是接受用户输入的数字并拆分这些数字,然后显示大于3的数字,例如: Input: 12345 Output: 4 5 我在拆分这些数字方面取得了一些进展,现在我在这一部分中,应该计算数字是否大于3,但我不断得到“TypeError:”>“list”和“int”实例之间不支持” 无论如何,我的代码如下: num_input = list(input('Enter number: ')) for i in num_

我目前正在学习Python,我已经被这个问题困扰了几个小时。我的任务是接受用户输入的数字并拆分这些数字,然后显示大于3的数字,例如:

Input: 12345
Output: 4
        5
我在拆分这些数字方面取得了一些进展,现在我在这一部分中,应该计算数字是否大于3,但我不断得到“TypeError:”>“list”和“int”实例之间不支持”

无论如何,我的代码如下:

num_input = list(input('Enter number: '))

for i in num_input:
    if num_input > 3:
        print(i)
好的,应该是:

num_input = input('Enter number: ')

for i in num_input:
    if int(i) > 3:
        print(i)
基本上,一次只需从字符串
12345
中获取一个字符,然后将其转换为
int
。然后你可以把它和3比较

如果您需要较短的版本:

num_input = input('Enter number: ')

print([int(i) for i in num_input if int(i) > 3])

输出:
[4,5]
如果输入
123456

则必须将列表中的对象设置为整数,然后只有您才能将其与大于3的整数进行比较。这应该行得通

num_input = list(map(int,input().split()))

for i in num_input:
    if i > 3:
        print(i)

这允许在一行中输入多个值

您不需要
列表()。您的输入是字符串,您可以迭代字符串的每个字符,将其转换为int,然后比较:

num_input = input('Enter number: ')

for i in num_input:
    if int(i) > 3:
        print(i)

如果i>3:if int(i)>3:if应将代码更改为
if int(i)
。出现此错误的原因是,您正在列表上使用
运算符,而python不知道如何将数字列表与数字进行比较。您必须将列表项转换为
int
,才能进行正确的比较。顺便说一句,python中没有
强制转换
。您的示例是转换。显式类型转换也称为
casting
,老实说,我不明白。你只需要根据语义写一个主题,然后争论“你是这里唯一的权利”,而不提供任何信息。只是谷歌的转换和铸造的差异。我为你做了这项工作,这里是第一个随机链接,我是说只有其他人称它为
casting
,因为在其他语言中有这样的东西。Python是如此的强类型,以至于你不能“强制转换”,你只能转换,Python.org没有提到它。伙计,我使用该代码并在123456中键入,它只输出123456,对于多个输入,你必须在它们之间使用空格。如果你想从1-6通过,你必须像这样输入-123456好的,如果我使用123456,它会起作用