我的代码是:计算有多少值是偶数,正数,负数 并且它不起作用: 谢谢你的帮助
e = [ ]
for c in range(5):
c=float(input())
if c<0:
e.append(c)
print("{} valor(es) negativo(s)".format(len(e)))
if c>0:
e.append(c)
print("{} valor(es) positivo(s)".format(len(e)))
if c%2!=0:
e.append(c)
print("{} valor(es) par(es)".format(len(e)))
if c%2==0:
e.append(c)
print("{} valor(es) impar(es)".format(len(e)))
我想要这样的o / p:
3 valor(es)par(es)
2 valor(es)impar(es)
1 valor(es)positivo(s)
3 valor(es)negativo(s)
当我输入五(int)nos 并在输入时退出== 4
答案 0 :(得分:2)
首先,您对所有值类型使用相同的列表。只有第一次才算正确!见下面的奇数&amp;偶数。正面/负面的上述错误相同。
其次这是功能错误:
if c%2!=0:
e.append(c)
print("{} valor(es) par(es)".format(len(e)))
if c%2==0:
e.append(c)
print("{} valor(es) impar(es)".format(len(e)))
定义:
pares = []
impares = []
循环中的,写下这个
if c%2==0:
pares.append(c)
print("{} valor(es) par(es)".format(len(pares)))
else:
impares.append(c)
print("{} valor(es) impar(es)".format(len(impares)))
概念证明并尽可能地成为pythonic (我已经将示例设为非交互式,并且仅使用整数。就像ShadowRanger所指出的那样,模块上的浮点数对此代码的效果非常好)
# define 4 lists
the_list = [list() for i in range(4)]
negative_values,positive_values,odd_values,even_values = the_list
z=[1,2,-5,-7,0,3,-4]
for c in z: #range(5):
#c=float(input())
if c<0:
negative_values.append(c)
elif c>0:
positive_values.append(c)
if c%2==0:
even_values.append(c)
else:
odd_values.append(c)
print("{} negative values, {} positive values, {} odd values, {} even values".format(*tuple(len(x) for x in the_list)))