python - 为什么第 13 行 a = input() 影响第 15 行 b=input(int() 上的变量?

标签 python python-3.x input

我正在尝试编写一个函数,以字符串的形式获取用户输入并将其分配给变量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 的输入行试图将其输入分配给 ab ,从而导致 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:

最佳答案

在第一种情况下,您交换了 intinput 关键字,因此您尝试转换字符串 “请输入起始帐户余额:” 转换为整数,这会导致错误 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/

相关文章:

jquery - JStree 和 ajax

reactjs - 如何在 Material ui core 3.9.2 中使用 InputRef

javascript - 对没有类或 ID 且位于 Div 中的输入焦点发出警报

python - 如何获得 groupby 大小的百分比

python - gRPC套接字关闭消息

python - 在 pandas MultiIndex DataFrame 中按级别对列求和

python - 将字符串作为输入,像计算器一样对其进行计算并返回整数答案的函数

python - 包含 if 语句和 for 循环的单个语句

python - 未知符号 matplotlib mathtext

java - 如何在 Java 中将 char 或 int 发送到需要 string 作为 s 参数的方法?