a = []
for i in range(3):
a.append(input())
j = 0
for i in a:
if i % 10 != 7:
j = min(a)
print j
我需要一个算法,找到列表中最小的正数,十进制表示不以数字7结尾。保证列表至少有一个正元素,十进制表示不以数字7结尾我试过这个,但条件不起作用。例如:它表示7在[9,8,7]中最小。
答案 0 :(得分:4)
您总是测试a
中的最小数量,尽管与a
中未过滤的数字一样多。不要添加以7
到a
结尾的数字;您可能也希望过滤正面数字:
a = []
for i in range(3):
value = input()
if i % 10 != 7 and i >= 0:
a.append(value)
print min(a)
或者,过滤掉生成器表达式中的值:
a = []
for i in range(3):
a.append(input())
print min(i for i in a if i % 10 != 7 and i >= 0)
答案 1 :(得分:0)
编辑: 好吧,我误解了你的代码,你正在使用我认为更好的余数。虽然它可以使用像这样的普通部门。
if ((i / 10) - int(i / 10)) * 10 != 7:
而且,如果您没有使用Python 3,您可能需要使用它来实现上述功能:
from __future__ import division
或者使用float()进行浮动渲染,但这会使它太乱。