我试图找到三个数字中的最小数字但是对于某些值,答案是错误的,例如10,30,4,它显示最小数字为10.
num1 = input("Enter a number: ")
num3 = input("Enter a number: ")
num4 = input("Enter a number: ")
if (num1 < num3) and (num1 < num4):
print(num1)
elif (num3 < num4) and (num3 < num1):
print(num3)
else:
print(num4)
答案 0 :(得分:1)
您正在比较文字。在比较之前,您需要将输入转换为int
个对象。
num1 = int(input("Enter a number: "))
num3 = int(input("Enter a number: "))
num4 = int(input("Enter a number: "))
if (num1 < num3) and (num1 < num4):
print(num1)
elif (num3 < num4) and (num3 < num1):
print(num3)
else:
print(num4)
答案 1 :(得分:1)
问题:[['', 'a', 'a'], ['ab', '', 'abc']]
返回字符串,字符串按字典顺序进行比较。所以你应该将其转换为整数,你可以使用input()
执行此操作:
int(..)
但是,这是不计算最小值的好方法。如果你必须计算50个整数的最小值,你会怎么做?构建一个拥抱量的支票?计算机科学家 Edsger W. Dijkstra 曾经说过:
“两个或更多?使用
num1 = int(input("Enter a number: ")) num3 = int(input("Enter a number: ")) num4 = int(input("Enter a number: ")) if (num1 < num3) and (num1 < num4): print(num1) elif (num3 < num4) and (num3 < num1): print(num3) else: print(num4)
!” - Edsger W. Dijkstra
因此,如果您必须多次工作,最好使用for
循环来处理它。这样的代码片段的骨架看起来像:
for
for i in range(3):
# ...
pass
循环(此处为for
)的正文将重复三次。现在我们可以将哪些工作放入...
循环中?当然我们可以查询用户输入。所以我们可以写:
for
但现在我们还是要计算最小值。处理此问题的方法是使用累加器:通过迭代维护的变量,并相应地更新。这里累加器可以是到目前为止获得的最小值。由于最初我们没有最小值,我们可以使用for i in range(3):
number = int(input("Enter a number: "))
# ...
None
现在,如果thus_far_minimum = None
for i in range(3):
number = int(input("Enter a number: "))
# ...
为thus_far_minimum
,我们可以指定我们从用户查询的None
。此外,如果number
不再thus_far_minimum
(因此已初始化),但None
小于number
,我们可以更改thus_far_minimum
有最低限度。例如:
thus_far_minimum
最后我们可以打印thus_far_minimum = None
for i in range(3):
number = int(input("Enter a number: "))
if thus_far_minimum is None or number < thus_far_minimum:
thus_far_minimum = number
print(thus_far_minimum)
,因为它是我们看到的所有数字的最小值。
答案 2 :(得分:0)
使用input()
,您获得strings
,因此将输入值转换为整数。
num1 = int(input("Enter a number: "))
num3 = int(input("Enter a number: "))
num4 = int(input("Enter a number: "))
将变量设置为num1
,然后在将num1
与num3
和num4
进行比较时重置该变量。
smallest = num1
if num3 < smallest:
smallest = num3
if num4 < smallest:
smallest = num4
if num3 < num4:
smallest = num3
print(smallest)