我正在用python创建一个black-jack游戏。关于局部变量,传递,返回,我做了很多阅读,但是我很困惑,为什么main()函数中的print语句的工作方式如下,但是当我将它改为
print "The playerCards are: ", returned_playerCards
如果我在其他函数中“命中”另一张卡,它将打印“无”。 玩家名单是全球性的吗?当我调用playerDecision函数,然后调用playerHit函数,然后调用playerDecision函数时会发生什么。把这些都打出来让我觉得这样做是不对的。不然我怎么做
from random import randint
import time
A = 11
J = 10
Q = 10
K = 10
cards = [A,2,3,4,5,6,7,8,9,10,J,Q,K]
def deal():
#playerCards = [cards[randint(0,len(cards)-1)],cards[randint(0,len(cards)-1)]]
playerCards = [2,3]
dealerCards = [cards[randint(0,len(cards)-1)],cards[randint(0,len(cards)-1)]]
print "You have been dealt a ", playerCards[0], "and a ", playerCards[1]
time.sleep(1.5)
print "Dealer is showing ", dealerCards[0]
time.sleep(1)
return(playerCards, dealerCards)
def playerDecision(playerCards):
stayhit = raw_input("Would you like to 'stay' or 'hit' >> ")
if stayhit == 'hit':
playerCards = playerHit(playerCards)
elif stayhit == 'stay':
print "playerCards in elif of playerDecision ", playerCards
return(playerCards)
return(playerCards)
def playerHit(playerCards):
playerCards.insert(0, cards[randint(0,len(cards)-1)])
print "You were dealt a ", playerCards[0]
time.sleep(1.5)
print "Your current total is ", sum(playerCards)
time.sleep(1.5)
if sum(playerCards) > 21:
return(playerCards)
else:
print "PlayerCards in else of playerHit are ", playerCards
playerDecision(playerCards)
def main():
playerCards, dealerCards = deal()
returned_playerCards = playerDecision(playerCards)
print "The player cards are: ", playerCards
if __name__ == "__main__":
main()
猜猜看,你在哪儿
你需要一个
return
:否则函数结束时没有
return
语句,这相当于return None
相关问题 更多 >
编程相关推荐