如何在python中正确使用while循环和if语句?

时间:2014-10-01 20:04:15

标签: python while-loop

我的python代码出现问题,一直在寻求帮助。我听说过有关这个网站的不一样的东西,但我没有其他地方可以转向所以我希望有人在这里可以向我展示亮点,看看他们是否能找出我的代码有什么问题(除此之外它是凌乱和低效的)。这是

D=False

while D==False:

       input=raw_input("please type 1 for 10p, 2 for 20p, 3 for 50p, 4 for 1 pound")

       while input not in ['1', '2', '3', '4']:

        print "That is not a correct coin value"
        input = raw_input("input: ")
    else:
        if input=="1":
            m=m+10
        if input=="2":
            m=m+20
        if input=="3":
            m=m+50
        if input=="4":
            m=m+100

    print("your current credit in pennys is:")
    print(m)

    D2=raw_input("are you done")
    if D2=="yes" or "Yes":
         D=True
    else:
        D=False

我在这里搞砸了代码的植入,但你得到了图片。一切正常,直到你问到你是否完成了。出于某种原因,即使你没有放好也会继续。任何好的编码员都能告诉我它是什么吗

1 个答案:

答案 0 :(得分:0)

if D2=="yes" or "Yes":

始终评估为true,因为它基本上是这样解析的:

if (D2=="yes") or "Yes":

你可能想要:

if D2 == "yes" or D2 == "Yes":

哪个写得更好:

if D2.lower() == "yes":

或者:

if D2 in ["yes", "Yes"]: