可分性问题

时间:2016-04-04 03:41:22

标签: python user-input division

while True:
    value_1 = raw_input (" Please Enter the price in total cents or type 'done' to exit: ") 
    if value_1 == "done" :    
        print " Thank you,Good-Bye!"
        break
    else:
        value_1 = int(value_1)
        if value_1 % 5 == 0:
            continue  
        else:
            print "\n  Please Re-enter the Price in multiples of 5, Thank you!"
    if value_1 % 100 == 2 :
           print "x"

检查屏幕截图enter image description here 如果我输入5的倍数 它应该继续运行 但它又回到了顶峰 或者说如果我输入200,它应该打印x 但它无所事事 它再次提示用户输入

2 个答案:

答案 0 :(得分:0)

所以,正如你可能已经发现的那样,"继续"命令不会让你的代码继续下一步,而是将它带回到循环的开始。因此,如果您输入一个可被5整除的数字,您的代码会将您带回循环的开头并且不会执行第二次检查。

第二个问题是,如果我理解你想要脚本打印" x"如果输入200,那是第二次检查

if value_1 % 100 == 2 :

检查数字的剩余部分是否除以100是2.并且,在此检查之前,您检查了数字是否可被5整除,您将永远无法打印程序" x" 。你想要的是

if value_1 / 100 == 2

另外,要规避"继续"问题,只需嵌套这样的两个检查

if value_1 % 5 == 0:
    if value_1 / 100 == 2 :
        print "x"  
    else:
        print "\n  Please Re-enter the Price in multiples of 5, Thank you!"

有了这个,如果你输入5的倍数,它会带你回到提示,只有你输入200,它才会打印" x"

答案 1 :(得分:0)

修改代码如下

while True:
    value_1 = raw_input (" Please Enter the price in total cents or type 'done' to exit: ") 
    if value_1 == "done" :    
        print " Thank you,Good-Bye!"
        break
    else:
        value_1 = int(value_1)
        if value_1 % 5 != 0:
            print "\n  Please Re-enter the Price in multiples of 5, Thank you!"
            continue
        if value_1 / 100 == 2 :
            print "x"