【问题标题】:Logical error in max and min implementation?最大和最小实现中的逻辑错误?
【发布时间】:2019-09-05 10:12:22
【问题描述】:

我知道有一个 min max 语法,但我只是想自己使用 if 但我编写的代码不断返回 0 0 我的错误在哪里? 该程序应该从空格分隔的数字输入中打印出最大和最小数字

user = input(" :) ")

user = user.split(' ')

lt = 0
gt = 0
gtn = 0
ltn = 0

for i in user:
    for j in range(0, len(user)):
        if int(i) < int(user[j]):
            lt += 1
        elif int(i) > int(user[j]):
            gt += 1
        else:
            pass
    if lt == len(user):
        ltn = i
    elif gt == len(user):
        gtn = i

print(gtn, ltn)

【问题讨论】:

  • 请添加一些示例输入输出
  • 它应该做什么?
  • lt 永远不会等于 len(user),因为当 user(j) 是 i 时,if int(i) &lt; int(user[j]) 总是会失败

标签: python minmax


【解决方案1】:

您不需要嵌套的for,也不需要那么多if 条件。您所要做的就是将min 初始化为一个非常大的值,并将max 初始化为一个非常小的值,然后迭代一次。

nums = map(int, input(" :) ").split())
min_n = float('inf')
max_n = -float('inf')

for n in nums:
    if n < min_n:
        min_n = n
    if n > max_n:
        max_n = n

print(min_n)
print(max_n)

样本输出:

:) 3 4 5 6 2 11 2 3 4 99 1 -1
-1
99

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-21
  • 2010-12-10
  • 1970-01-01
  • 2010-11-09
相关资源
最近更新 更多