虽然数不符合投入

时间:2018-05-27 17:35:43

标签: python

我需要创建一个读取多个输入的程序,当按下0时,它会显示输入100到200之间的数字。这是我的代码:

def counting():
    total = 0
    entry = int(input("Type a number: "))
    while entry != 0:
        entry = int(input("Type a number: "))
        if 100 < entry < 200:
            total += 1

    print(total)

除非输入的第一个数字介于100和200之间,否则它可以正常工作。如果我输入'123','150'和'0',我将得到1(第一个输入不计算)。有任何解决方法吗?

谢谢:D

2 个答案:

答案 0 :(得分:0)

请注意双input语句吃了你的第一个值(并且是应该避免的重复代码),你可以避免这样:

while True:
    entry = int(input("Type a number: "))
    if 100 < entry < 200:
        total += 1
    if entry == 0:
       break

使用在值为0时手动中断的无限循环,每次都测试该值,并避免复制input语句。

(python没有do / while类型语句,因此您可以越接近至少执行一次语句)

答案 1 :(得分:0)

尝试在entry条件之后移动if的输入,否则第一次询问时会被忽略:

def counting():
    total = 0
    entry = int(input("Type a number: "))
    while entry != 0:
        if 100 < entry < 200:
            total += 1
        entry = int(input("Type a number: ")) # moved

    print(total)