使用条件python查找最小值

时间:2014-06-07 14:08:58

标签: python python-2.7 conditional-statements min

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]中最小。

2 个答案:

答案 0 :(得分:4)

总是测试a中的最小数量,尽管与a中未过滤的数字一样多。不要添加以7a结尾的数字;您可能也希望过滤正面数字:

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()进行浮动渲染,但这会使它太乱。