可分割性问题


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"

检查屏幕截图 在此处输入图像描述如果我输入 5 的数字倍数它应该继续运行但它又回到了顶部或者说如果我输入 200,它应该应该打印x但它什么也没做它再次提示用户输入

因此,您可能已经发现,"continue"命令不会使您的代码继续下一步,而是将其带回循环的开始。因此,如果您输入一个可被 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">

修改代码如下

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"

相关内容

  • 没有找到相关文章

最新更新