【问题标题】:python3 - data type of input()python3 - 输入()的数据类型
【发布时间】:2013-01-28 22:33:34
【问题描述】:

我需要将用户提供的整数值分配给对象。我的格式如下:

object = input("Please enter an integer")

以下打印测试...

print(type(object))
print(object)

...返回<class 'str'> 和'1'。有没有办法将“对象”的数据类型设置为用户输入值的数据类型? IOW,这样如果 object=1,type(object)=int?我知道我可以使用以下方法将输入的数据类型设置为 int:

object = int(input("Please enter an integer"))

在这种情况下,如果用户没有提供一个 int,控制台会抛出一个回溯错误并且程序崩溃。我更愿意测试该对象是否实际上是一个 int;如果没有,使用我的程序打印错误语句并递归抛出之前的提示。

【问题讨论】:

  • 请不要使用object作为变量名;它是用于引用 Python 通用基类的内置名称。 (另外,这是一个非常通用的名称。)
  • 它在我的实际代码中有一个唯一的名称,但我想简化我的问题。不过,感谢您的反馈/见解!

标签: input python-3.x


【解决方案1】:
while True:
 try:
  object = int(input("Please enter an integer"))
  break
 except ValueError:
  print("Invalid input.  Please try again")
print(type(object))
print(object)

【讨论】:

    【解决方案2】:

    您始终可以捕获“回溯错误”并替换您自己的错误处理。

    user_input = input("Please enter an integer")
    try:
        user_number = int(user_input)
    except ValueError:
        print("You didn't enter an integer!")
    

    【讨论】:

    • 感谢您鼓励我仔细阅读,这确实是一个 ValueError。没有回溯错误之类的东西!哎呀。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2021-12-04
    • 2020-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多