编写二十一点游戏时出现NameError(已更新)

时间:2019-01-15 13:01:43

标签: python python-2.7 nameerror blackjack

昨天我发布了一个有关运行程序时遇到的NameError的问题。从我在帖子中得到的评论中,我决定问同样的问题,只是这次只是向我的Github存储库添加一个链接,这样您就可以获得关于我特定问题的完整参考和上下文,希望可以帮助我了解我该怎么做才能解决我的问题。这是我的Github存储库:

https://github.com/AlonSalzmann/Blackjack

我遇到的问题是出现错误:

Traceback (most recent call last):
  File "C:/Users/pc/PycharmProjects/Blackjack/Game Flow/Game_Flow.py", line 83, in <module>
    player_turn()
  File "C:/Users/pc/PycharmProjects/Blackjack/Game Flow/Game_Flow.py", line 29, in player_turn
    user_decision = input('would you like to hit or hold?')
  File "<string>", line 1, in <module>
NameError: name 'hit' is not defined

运行代码块时:

def player_turn():
    if sum(player_card_numbers) < 21:
        user_decision = input('would you like to hit or hold?')
        if user_decision == 'hit':
            player_cards.append(deck.draw())
            print player_cards, dealer_cards
            player_turn()

        elif user_decision == 'hold':
            print "Dealer's turn!"
            dealer_turn()
        else:
            print "player must choose 'hit' or 'hold'"
            player_turn()

    elif sum(player_card_numbers) == 21:
        print "Blackjack!"
        dealer_turn()

    else:
        print "Player Burnt! \nDealer's turn!"
        dealer_turn()

此代码块位于“ Gameflow”文件夹中的“ Gameflow.py”中。 再次感谢您的解释,现在可以通过我的Github帐户访问整个项目,从而使我的工作更加轻松。 该项目 是用python 2.7

编写的

1 个答案:

答案 0 :(得分:1)

使用Python 2.x时,您必须使用raw_input函数,而不是输入函数。

在Python 2.x中,input()将输入评估为Python表达式,而不是字符串。

您可以了解有关该行为here的更多信息。