可分割性问题

Divisibility issue

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 但它什么也没做 再次提示用户输入

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

第二个问题是,如果我理解正确的话,如果你输入200,你想让脚本打印"x",那么第二个检查

if value_1 % 100 == 2 :

检查数字除以 100 的余数是否为 2。并且,由于在此检查之前,您检查了数字是否可被 5 整除,因此您永远不会让程序打印 "x"。你要的是

if value_1 / 100 == 2

此外,为了避免 "continue" 问题,只需像这样嵌套两个检查

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"

修改代码如下

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"