【问题标题】:looping through user input with an if condition使用 if 条件循环用户输入
【发布时间】:2016-08-01 19:25:48
【问题描述】:

您好,如果余额与账面余额的总和不匹配,我想循环访问此输入(pp, bfair, sky, freds wh)

while True:
        try:
            balance = float(raw_input('Balance:'))
            print balance
        except ValueError:
            print"That's not a number"
            continue
        else:
            break
while True:
        try:
            bfair_balance = float(raw_input('bfair:'))
            print bfair_balance
        except ValueError:
            print"That's not a number"
            continue
        else:
            break
while True:
        try:
            wh_balance = float(raw_input('wh:'))
            print wh_balance
        except ValueError:
            print"That's not a number"
            continue
        else:
            break
while True:
        try:
            freds_balance = float(raw_input('freds:'))
            print freds_balance
        except ValueError:
            print"That's not a number"
            continue
        else:
            break
while True:
        try:
            sky_balance = float(raw_input('sky:'))
            print sky_balance
        except ValueError:
            print"That's not a number"
            continue
        else:
            break
while True:
        try:
            pp_balance = float(raw_input('pp:'))
            print pp_balance
        except ValueError:
            print "That's not a number"
            continue
        else:
            break

我是否将这一切放在另一个while循环中,if语句满足条件?

【问题讨论】:

    标签: python loops input


    【解决方案1】:

    是的。

    并考虑使用函数来避免代码中的重复:

    def ask_float(msg):
        while True:
            try:
                x = float(raw_input(msg))
                print x
                return x
            except ValueError:
                print "That's not a number"
                continue
    
    
    while True:
        balance = ask_float('Balance:')
        bfair_balance = ask_float('bfair:')
        wh_balance = ask_float('wh:')
        freds_balance = ask_float('freds:')
        sky_balance = ask_float('sky:')
        pp_balance = ask_float('pp:')
        balance_sum = pp_balance + bfair_balance + sky_balance + freds_balance + wh_balance
        if balance == balance_sum:
            # balance is correct -> stop the loop
            break
        else:
            print("put a nice error message here")
    

    【讨论】:

    • 非常感谢。我正要问如何压缩该代码,因为我确定有办法并且您已经做到了!再次感谢,这是一个很大的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多