微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何使用python 3.x从用户输入中查找第二个最小/最大数字?

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,但是最大和最小数字仍然有效

解决方法

如果值大于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:来做到这一点

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。