Python 2.7 Python删除奇数,只打印偶数
您好,我是一个初学者,我想了解这段代码有什么问题。 用户选择了5个数字,我只想打印偶数。Python 2.7 Python删除奇数,只打印偶数,python-2.7,Python 2.7,您好,我是一个初学者,我想了解这段代码有什么问题。 用户选择了5个数字,我只想打印偶数。 感谢您的帮助raw\u input返回一个字符串,无法转换为int类型 您可以使用以下选项: user = int(raw_input("Type 5 numbers")) even = [] def purify(odd): for n in odd: even.append(n) if n % 2 > 0: print n p
感谢您的帮助raw\u input返回一个字符串,无法转换为int类型 您可以使用以下选项:
user = int(raw_input("Type 5 numbers"))
even = []
def purify(odd):
for n in odd:
even.append(n)
if n % 2 > 0:
print n
print purify(user)
有几个问题: 不能将
int
应用于整个字符串,一次只能应用于一个整数
因此,如果您的数字是空格分隔的,那么您应该将它们拆分为字符串列表。您可以在输入后立即转换它们,也可以等待并在purify
函数中进行转换
此外,您的purify
函数将每个值附加到列表甚至中,而无需先对其进行测试
此外,您的测试是反向的——您只打印奇数,而不是偶数
最后,如果要在函数外部打印,则应返回偶数
的值,而不是在循环时打印它们
我认为这个编辑版本应该有效
user = raw_input("Input 5 numbers separated by commas: ").split(",")
user = [int(i) for i in user]
搜索偶数是“过滤”偶数的最简单方法:
def purify(x):
new_lst = []
for i in x:
if i % 2 == 0:
new_lst.append(i)
return new_lst
谢谢你,真的帮助了我。
def purify(x):
new_lst = []
for i in x:
if i % 2 == 0:
new_lst.append(i)
return new_lst
output = filter(lambda x:~x&1, input)
def purify(list_number):
s=[]
for number in list_number:
if number%2==0:
s+=[number]
return s