【问题标题】:Is it possible to turn a raw_input into a either a float or an int depending on what the user enters?是否可以根据用户输入的内容将 raw_input 转换为 float 或 int?
【发布时间】:2015-12-11 22:16:27
【问题描述】:

让我解释一下:

比如说,有人有这个:

guess = raw_input("Enter your guess: ")

我知道你可以使用int() & float() 但这就是我的问题所在。您可以同时使用两者吗?

假设您要的是 1-10 的数字。您会考虑使用int(raw_input()),但如果用户输入8.5 会怎样?它会破坏程序,因为8.5 不是int()

有人可以帮我解决这个问题吗?

--编辑--

如何做到以下几点:

guess = raw_input("Enter a number: ")
if guess == 1:
    print 'ok'
elif guess == 2:
    print 'no'
else:
    # re-loop to ask them for a number, since the inputted number is not valid...

我需要知道如何在 else 下进行操作。感谢您的帮助。

【问题讨论】:

  • 这是用python写的
  • 只需使用float()。如果用户输入'3',它将变为3.0
  • 你用的是什么版本的python? python的版本我在使用int 时只是将它四舍五入,除非它有这么多小数位。
  • @DeliriousSyntax 我相信 2.7.10

标签: python floating-point int


【解决方案1】:

只需使用float()。如果用户输入'3',它将变为3.0

如果您真的关心尽可能使用int,您可以使用try/except

guess = raw_input("Enter your guess: ")
try:
    guess = int(guess)
except ValueError:
    guess = float(guess)

如果用户输入一个字符串,这仍然会失败。

【讨论】:

    【解决方案2】:

    一般来说,您可以将 try/except 设置为仅使用整数:

    try guess = int(guess)
    except:
       print 'Please enter an integer.'
    

    之后,您可以退出程序或循环回输入请求以再次尝试。

    【讨论】:

      猜你喜欢
      • 2017-12-04
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 2011-08-25
      • 2016-03-11
      • 2020-07-28
      • 2013-12-16
      • 2021-10-12
      相关资源
      最近更新 更多