我不能让这个代码在python中工作

时间:2015-12-01 01:14:51

标签: python python-3.x

keepgoing = True
num1 = int(input("Enter a Number"))
num2 = int(input("Enter a Number"))
bignums = 0
smallnums = 0
counter = 0

while keepgoing:

    if num1 > num2:
        bignums = bignums + num1
        smallnums = smallnums + num2
    else:
        bignums = bignums + num2
        smallnums = smallnums + num1

    counter + 1

    if num1 == 0:
        keepgoing = False


print (bignums / counter)
print (smallnums / counter)

我写的节目: 编写一个输入数字对的程序,直到该对中的第一个数字为0.对于较小的数字,程序将为最小数字添加最小数字,对于最大数字,将最大数字添加到总数。退出循环后,它将打印较小数字的平均值,较高数字的平均值以及输入的最高和最低数字。

我认为我做的一切都是正确的,但是当你输入" 0"时它不会结束/退出循环。此外,我不知道如何让它显示最高和最低的数字。有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:1)

按照@Joseph的建议做这样的事情,保留循环中数字的条目:

keepgoing = True

bignums = 0
smallnums = 0
counter = 0

while keepgoing:

    num1 = int(input("Enter a First Number"))
    num2 = int(input("Enter a Second Number"))

    if num1 > num2:
        bignums = bignums + num1
        smallnums = smallnums + num2
    else:
        bignums = bignums + num2
        smallnums = smallnums + num1

    counter += 1

    if num1 == 0:
        keepgoing = False


    print "Average of big numbers", bignums / counter
    print "Average of small numbers", smallnums / counter

如果您处理如果用户同时输入两个数字将会发生的情况,那么也会很好。如果您需要更多帮助,请告诉我

答案 1 :(得分:0)

有一点需要注意的是,Num1永远不会改变,所以如果你把其他东西放到零那么它会被卡住。您可以更改 keepgoing = false

break

希望这有帮助!

答案 2 :(得分:0)

num1 = int(input("Enter a Number"))
num2 = int(input("Enter a Number"))

也必须在循环内部以便应用程序终止。