Python; NameError:名字“handsum”没有定义
问题描述:
我编码一个基本的BlackJack游戏,我挑战自己,使尽可能多的功能成为可能,从而使代码如下所示:Python; NameError:名字“handsum”没有定义
funcA()
funcB()
funcC()
至于反对:
funcA()
print("this")
print("that")
funcB()
这里是我的问题是在我的代码:
def playerTurn():
global handSum
global cardOne
global cardTwo
global dealerSum
global upCard
global downCard
global bet
global newCard
global dealerNewCard
str(handsum)
str(cardOne)
str(cardTwo)
str(upCard)
str(money)
print("You are lying at", handSum, "with a", cardOne, 'and a', cardTwo
+ '.', "The Dealer has a", upCard, "facing up. You have $" + money + '.')
int(handsum)
int(cardOne)
str(cardTwo)
str(upCard)
str(money)
sleep(1.3)
bet=int(input('How much would you like to bet? '))
sleep(1.3)
money-=bet
print("Your bet is $%s." %bet)
sleep(2.5)
playerInput=input(str(print('''Would you like to:
Hit (H)
Stand (S)
Double (D)
Stick (SP)
Enter Letter for Answer: '''))).upper
sleep(1)
while True:
Hit()
Stick()
Double()
Quit()
而这里的错误,我得到一次我的代码达到这样的功能:
Traceback (most recent call last):
File "C:\Users\Owner\Desktop\Python\Games\Python 3.X\BlackJack\BlackJack.py",
line 20, in <module>
Start()
File "C:\Users\Owner\Desktop\Python\Games\Python 3.X\BlackJack\BlackJack.py",
line 16, in Start
Intro()
File "C:\Users\Owner\Desktop\Python\Games\Python
3.X\BlackJack\PlayerTurns.py", line 242, in Intro
playerTurn()
File "C:\Users\Owner\Desktop\Python\Games\Python
3.X\BlackJack\PlayerTurns.py", line 188, in playerTurn
str(handsum)
NameError: name 'handsum' is not defined
我对这个游戏使用了多个python文件(2)。
答
在蟒蛇,就像
str(handsum)
线意味着你调用的函数str
的说法handsum
,然后disgarding结果。在这个函数中,你没有在范围内有一个名为handsum
的变量。由于您的global handSum
行(注意总计S总和)您做有一个相似的名称,但范围内的不同变量。你可能打算引用这个变量,但python区分大小写。
但是,我不知道你为什么要在变量上调用str
并丢弃返回值。这不会声明handSum
(您不需要声明python变量,它们是在赋值时创建的,并且可以使用global
关键字将它们带入范围),也不会将handSum
(如果更改了大小写)转换为字符串(你将需要使用返回值str(handSum)
),或者确实,根本就没有做任何事情。
此外,您不希望使用global
s用于所有这些变量。将它们作为参数传递给函数,或者将它们包装到一个对象中。这有助于在未来划分问题。
它看起来不像,但一切正常缩进。 –
'handsum'和'handSum'是一个不同的变量。 –
方式**太多'全球'**。 –