如何在python中多次使用'if'循环?

时间:2015-02-07 10:13:25

标签: python python-2.7

def hit():
    global hitsum
    hitsum = 0
    v=random.choice(cards)
    c=random.choice(suits)
    if v=="Ace":
        hitsum=hitsum+1
        print "You were dealt","a",v,"of",c
    elif v=="Jack":
        hitsum=hitsum+11
        print "You were dealt","a",v,"of",c
    elif v=="Queen":
        hitsum=hitsum+12
        print "You were dealt","a",v,"of",c
    elif v=="King":
        hitsum=hitsum+13
        print "You were dealt","a",v,"of",c
    else:
        hitsum=hitsum+v
        print "You were dealt","a",v,"of",c

computer()

choice=raw_input("Would you like to hit or stay? ")
if choice=="hit":
    hit()
    totalsum = hitsum + usersum
    print "Your total is", totalsum

elif choice=="stay":
    totalsum=usersum

else:
    print "Invalid request"

此代码摘自我的二十一点游戏。我创建了一个用户定义的函数,用于在有人要求命中时随机生成一张卡片。然而,这仅适用于一种选择。如果我选择点击一次,我不会再选择它。我该如何纠正?

1 个答案:

答案 0 :(得分:0)

choice=raw_input("Would you like to hit or stay? ")
while choice=="hit":
    hit()
    totalsum = hitsum + usersum
    print "Your total is", totalsum
    choice=raw_input("Would you like to hit or stay? ")

我强烈建议您更改hithitsum的处理方式。而不是让它全球化,为什么不回归呢?所以在hit结束时,你会有

return hitsum

然后在电话中你可以做

totalsum = usersum + hit()

我也在这里看到其他几个问题。下一次通过choice==hit循环,用户将返回到以前的状态。我不认为这就是你想要的。当然,您希望usersum增加hitsum。在这种情况下,请将totalsum = ...替换为

usersum += hit()

最后,在您的hit函数中,为什么要在开头定义hitsum=0