我不知道为什么没有出现正确答案

时间:2021-04-28 11:46:33

标签: python-3.x

我是新手程序员。 我想输出最小的输入值,但不知道怎么回事。

输入示例:

10

10 4 2 3 6 6 7 9 8 5

输出示例: 2

n = int(input())    
a = input().split()
min=a[0]

for i in range(n) :
  if a[i] < min :
    min = a[i]
print(min)

有什么问题吗?请帮帮我

4 个答案:

答案 0 :(得分:0)

您的代码应该可以工作(对我来说也是如此)。

尽管如此,min 是 Python 保留字。考虑到这一点,我还建议进行以下更改,使其更加地道:

a = input().split()
min_num = a[0]

for element in a:
  if element < min :
    min = element

print(min)

答案 1 :(得分:0)

变量可以是数字或字符串。例如“2”与 2 不同。

函数 split 返回一个字符串数组。如果要进行数字比较,则需要将每个转换为数字,例如:

n = int(input())
a = input().split()
min=int(a[0])

for i in range(n) :
  if int(a[i]) < min :
    min = int(a[i])
print(min)

注意:您已经对 n(原始代码中的第一行)执行了此操作,但是在访问 a 时您没有执行相同的操作。

答案 2 :(得分:0)

所以,min 实际上是 Python 内置的,在这种情况下会非常有用。此外,您没有将 a 中的输入值转换为整数,因此我们也可以这样做:

n = int(input())
a = list(map(int, input().split()))

print(min(a))

我们使用 map 将拆分列表中的所有值转换为整数,然后将地图对象转换回列表。然后,使用 min,我们可以很容易地找到最小的数,无需 for 循环。

答案 3 :(得分:0)

我认为您应该在比较之前将每个元素转换为整数。

a = [int(i) for i in input().split()]

您的代码应该可以工作,但它会将字符串与字符串进行比较,而不是将整数与整数进行比较。

相关问题