我是初学者,正在编写 Python Blackjack 脚本,并且对函数 (dealPlayer) 是否需要参数感到困惑。无论有无参数,它都可以工作。我不确定我是不是脑子放屁了,还是我一路上没有学到东西。这是代码:
import random
dealer = []
player = []
c = ""
deck = [2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,
9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,11]
def dealPlayer(deck):
cardOne = random.choice(deck)
cardTwo = random.choice(deck)
player.append(cardOne)
player.append(cardTwo)
deck.remove(cardOne)
deck.remove(cardTwo)
问题是,函数中需要(deck)作为参数吗?它可以使用或不使用 (deck) 作为参数。我已经回顾了不同的教程和其他人的代码,但我仍然感到困惑。感谢您的帮助。
最佳答案
你的代码使用或不使用 deck
作为参数的原因是因为有一个名为 deck
的全局变量,所以当你引用 deck
在您的函数内部,该函数将首先查找局部变量(参数),如果找不到,它将查找全局变量。
最好重构您的代码,使其完全不使用全局变量——最初在函数内定义 deck
,然后根据需要将其作为结果或参数传递给其他函数。如果您不想这样做,那么至少要确保您的参数不会隐藏(与)全局变量(具有相同的名称),以避免进一步混淆。或者完全删除参数并仅使用全局变量,如果这适合您的程序。
关于Python 参数混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15013537/