我正在尝试编写一个函数,以字符串的形式获取用户输入并将其分配给变量a
。然后接受用户输入的整数并将其分配给变量b
。问题是,当我在 Windows 命令行中运行代码并输入一个字符串时,我认为我只是将变量 a
分配为字符串,但出现此错误,表示它正在为变量寻找 int b
.
如果我将变量 b
设置为等于 input("请输入起始帐户余额:")
而不是 input(int("请输入起始帐户余额: "))
错误按预期消失,但不需要 int 我不知道如何添加 try 和 except 语句。
def player_setup():
a = input("Please enter player name: ")
print(f"Name saved as {a}.")
b = input(int("Please enter starting account balance: "))
return Player(name = a, account = b)
from BlackJackPackage.game_support_functions import welcome
from BlackJackPackage.game_support_functions import player_setup
welcome()
while True:
#Enter Player Name, and Enter Player Starting Money
human_player = player_setup()
print(f"Welcome {human_player.name}!")
print(f"You have ${human_player.account} in your account!.")
break
我希望变量 a 是一个字符串,b 是一个整数。这些变量最终应该用于初始化一个名为 Player
的类,该类需要 name(string)
和 account(integer)
输入。看起来 a
的输入行试图将其输入分配给 a
和 b
,从而导致 ValueError。
错误:
C:\Users\Username\Desktop\Udemy Python>python Blackjackgame.py
Welcome to Blackjack Basic. First you will need to enter your name and
how much money you have.
Please enter player name: David
Name saved as David.
Traceback (most recent call last):
File "Blackjackgame.py", line 9, in <module>
human_player = player_setup()
File "C:\Users\David Fitzmaurice\Desktop\Udemy
Python\BlackJackPackage\game_support_functions.py", line 15, in
player_setup
b = input(int("Please enter starting account balance: "))
ValueError: invalid literal for int() with base 10: 'Please enter starting
account balance:
最佳答案
在第一种情况下,您交换了 int
和 input
关键字,因此您尝试转换字符串 “请输入起始帐户余额:”
转换为整数,这会导致错误 ValueError: invalidliteral for int() with base 10: 'Please Enter opening
账户余额:
所以而不是
b = input(int("Please enter starting account balance: "))
如下所示,您可以在其中获取输入,然后将其转换为整数。
b = int(input("Please enter starting account balance: "))
因此更新后的代码将是
def player_setup():
a = input("Please enter player name: ")
print(f"Name saved as {a}.")
#Fixed this line by swapping int and input
b = int(input("Please enter starting account balance: "))
return Player(name = a, account = b)
from BlackJackPackage.game_support_functions import welcome
from BlackJackPackage.game_support_functions import player_setup
welcome()
while True:
#Enter Player Name, and Enter Player Starting Money
human_player = player_setup()
print(f"Welcome {human_player.name}!")
print(f"You have ${human_player.account} in your account!.")
break
关于python - 为什么第 13 行 a = input() 影响第 15 行 b=input(int() 上的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56261837/