<p>在提供的代码中,<code>print</code>语句表明您正在使用python2,但是各种<code>input()</code>调用似乎是python3。在</p>
<p>我认为您使用的是python2,否则编译器将抱怨并且不会打印任何内容。在</p>
<p>在这种情况下,以pyhton2样式重写输入:</p>
<pre><code>ace1 = int(input("Would you like a 1 or 11?"))
</code></pre>
<p>变成:</p>
^{pr2}$
<p>类似于<code>ace2</code>和{<cd4>}函数中的<code>draw</code>。在python2中,<code>input()</code>已经计算了输入,因此如果输入了一个整数,就已经得到了一个整数。在</p>
<pre><code>draw = input("Would you like to [H]it or [S]tay?")
</code></pre>
<p>变成:</p>
<pre><code>draw = raw_input("Would you like to [H]it or [S]tay?")
</code></pre>
<p>这可能就是问题所在。<code>input()</code>试着把字符串当作一个变量来处理,当然这是不存在的。在python2中,您需要<code>raw_input()</code>来接受一个字符串作为输入。在</p>
<blockquote>
<p>This also happens with the dealer, who just gets stuck in an endless
loop of drawing a card, removing the previous card, than adding that
card.</p>
</blockquote>
<p>我编辑了<code>dealerdraw()</code>来解决这一部分:</p>
<pre><code>def dealerdraw():
global dealer_cards
if dealer_cards < 21:
dealer_card3 = random.randrange(1,12)
dealer_hand.append(dealer_card3) #add the card to the dealer's list cards
dealer_cards = sum(dealer_hand) #get the sum of all the cards
print dealer_hand #just to show that cards in dealer hands are added, remove this line in real game
print "Dealer drew a card"
if dealer_cards == 21:
print "Dealer won"
print "his hand was", dealer_hand, "totaling", dealer_cards
elif dealer_cards > 21:
print "Dealer busted, you won"
print "his hand was", dealer_hand, "totaling", dealer_cards
else:
print "The Dealer smirks"
print "You're turn"
print draw()
elif dealer_cards == 21:
print "Dealer won, his hand was", dealer_hand, "totaling", dealer_cards
else:
print "If you see this, the game isn't working"
return " "
</code></pre>
<p>庄家总是抽一张牌。但现在他手上的牌都加好了,或者他赢了21张,否则他就破产了。由你来改进代码,让经销商留下来。在</p>