Python,简单的计算

时间:2017-10-24 03:00:49

标签: python

用户键入整数(小于100,大于0) 如果用户键入0,则程序结束。如果数字为100或更大,或者为-1或更小,则显示INVALID,并提示用户继续输入数字。

a = int(input('Enter a number: '))

total =0 
keep = True

while keep:

    if a ==0:
        print('Thanks for playing.. goodbye')
        break;
    else:
        while a>99 or a <0:
            print('INVALID')
            a = int(input('Enter a number: '))

    total = total + a
    print(total)
    a = int(input('Enter a number: '))

只要输入正常数字并得到总和,我输入0,然后停止,但是当我输入100时,INVALID显示,然后我输入0,程序不会结束并且它一直显示我无效。 任何建议将不胜感激。谢谢!

4 个答案:

答案 0 :(得分:0)

在你的代码中,else永远不会打破循环,所以它只在它退出第二个循环之后总计总和,但第二个没有行为为0.你应该尽量保持简单只有一个循环。

total =0 
while True:
    a = int(input('Enter a number: '))
    if a == 0:
        print('Thanks for playing.. goodbye')
        break
    else:
        if a > 99 or a < 0: # You don't need a second while, just an if.
            print('INVALID')
        else:
            total = total + a
            print(total)

在python中识别是关键,小心它。

还清理了一下你的代码。例如:由于您使用while进入循环,因此无需在循环中使用2-3个不同的输入,只需在循环内部的开头添加一次。

答案 1 :(得分:0)

我认为这是一种更加pythonic的方法

total =0 

while True:
    a = int(input('Enter a number: '))
    if a == 0:
        break
    if a>99 or a <0:
            print('INVALID')
    else:
        total = total + a            

print(total)
print('Thanks for playing.. goodbye')

答案 2 :(得分:0)

使用您的代码时,结果是:

Enter a number: 100
INVALID

Enter a number: 0
0

Enter a number: 0
Thanks for playing.. goodbye

我认为你的代码应该是:

a = int(input('Enter a number: '))

total =0 
keep = True

while keep:

    if a ==0:
        print('Thanks for playing.. goodbye')
        break;
    else:
        while a>99 or a <0:
            print('INVALID')
            a = int(input('Enter a number: '))
            if a ==0:
                print('Thanks for playing.. goodbye')
                break;

    total = total + a
    print(total)
    a = int(input('Enter a number: '))

您可以更详细地了解您的要求。

答案 3 :(得分:0)

你处于有条件的while循环中,因为你首先输入了100,除非输入一个满足0&lt; = a&lt; = 99的数字,否则你不能离开那里。你可以制作另一个if语句对于a == 0,在a = int下面退出while循环(输入(&#39;输入数字&#39;))else条件。

我认为只使用一个打印(a)来检查您在循环中的位置是一件好事。例如,就在if-else有条件之前或者在else之前有条件的时候。然后,您可以检查它出错的地方。

a = int(input('Enter a number: '))

total = 0 
keep = True

while keep:
    \\ print(a) here to make sure if you are passing here or not.  
    if a == 0:
        print('Thanks for playing.. goodbye')
        break;
    else:
        \\ print(a) here to make sure if you are passing here or not. 
        while a > 99 or a < 0:   \\You are in while loop since you entered 100 at first and you can't get out from here unless you enter a: 0 <= a <= 99.
            print('INVALID')
            a = int(input('Enter a number: '))
            if a == 0: 
                print('Thanks for playing.. goodbye') 
                break;
    total = total + a
    print(total)
    a = int(input('Enter a number: '))