如何使用Python3.x从用户输入中查找第二小/最大的数字?

2024-09-29 23:28:44 发布

您现在位置:Python中文网/ 问答频道 /正文

python新手,尝试完成一项任务,要求用户输入两个最大和两个最小的数字求和,数字0表示输入结束,无法理解代码为什么不工作

b = 0
c = 0
b2 = 0
c2 = 0
for i in range(-30000, 30000):
    a = int(input())
    if a == 0:
        break
    elif a > b:
        b = a
    elif a < c:
        c = a
    elif a >= b-1:
        b2 = a
    elif a <= c+1:
        c2 = a
print(b, b2, c, c2)
summ1 = b + b2
summ2 = c + c2
print(summ1, summ2)

b-最大数,c-最小数,b2-第二大数,c2-第二小数

输入数字并运行代码后,变量b2和c2始终为0,但最大和最小的数字仍然有效


Tags: 代码用户inforinputrange数字b2
2条回答

如果值大于b,则不仅需要设置新的b,还需要将旧的b移动到b2

    elif a > b:
        b, b2 = a, b
     
    elif a < c:
        c, c2 = a, c

    elif a >= b2:
        b2 = a
    elif a <= c2:
        c2 = a

其余的elif语句是错误的。数字必须大于b2或小于c2

我看到您正在尝试学习Python,所以让我给您一些关于如何更简单地解决问题的一般提示:

  1. 首先,将所有用户输入收集到Python列表中
  2. 现在,找出列表中最大的2和最小的2个数字。请记住,python有max()min()函数
  3. 进行求和和和打印

一个简单的python提示:您的for i in range(-30000, 30000):实际上是一个“永远的”:在python中,我们使用while True:

相关问题 更多 >

    热门问题