【问题标题】:Python input processing when input is a float or string输入为浮点数或字符串时的 Python 输入处理
【发布时间】:2016-02-02 03:50:50
【问题描述】:

我希望有人可以帮助或提示我在这个 Python 家庭作业中出了什么问题:

number = int(input("Enter a number"))
if number == int or float:
    print(number * number, number * number * number, number ** 4)
elif number != int or float:
    print("This is not a valid number")

它可以用整数运行,但不能用浮点数或字符串。我认为这是因为 number 设置为查找整数,但我不确定用什么替换它才能使其工作。

【问题讨论】:

  • 你遇到了什么错误?
  • 先看看这个问题:stackoverflow.com/questions/5424716/…
  • 最终答案:number = input("Enter a number") try: number = int(number) print(number * number, number * number * number, number ** 4) except ValueError: try : number = float(number) print(number * number, number * number * number, number ** 4) except ValueError: print("This is not an integer or float")

标签: python python-3.x io


【解决方案1】:

您想使用try... except... else 块:

try:
    number = float(input("Enter a number"))
except ValueError:
    print("This is not a valid number")
else:
    print(number * number, number * number * number, number ** 4)

【讨论】:

  • 我最终推断出这个来得到我的最终答案,所以感谢 pzp。这是我的最终代码的样子: number = input("Enter a number") try: number = int(number) print(number * number, number * number * number, number ** 4) except ValueError: try: number = float(number) print(number * number, number * number * number, number ** 4) except ValueError: print("This is not an integer or float")
【解决方案2】:

您可以将输入环绕 try ... except

something = input()

try:
    something = int(something)
except:
    print("not an int")

【讨论】:

  • 你的if不会总是返回true吗?因为您在将number 转换为int 之后立即检查number 是否为int
  • 这就是用户正在做的事情
【解决方案3】:

你可以用浮点数替换 int 吗?像这样: "number = float(input("输入一个数字"))"

我认为它可以解决您的问题。无论如何,我们可以使用更多的描述。

祝你好运!

【讨论】:

  • 如果用户传递一个字符串,这不会抛出ValueError。 “你好”
  • 是的,我没明白。他想做python已经做过的事情吗?因为python在传递字符串时会抛出“非数字”错误。如果是这样,我认为尝试...除了将是解决方案无论如何,这里有一个尝试的解决方案...除了尝试:number = float(input("输入一个数字")) print(number * number, number * number * number, number ** 4) except: print("This is not a valid number")
  • 也许他想清理用户的输入。比如如果用户发送的不是 int 或 float 那么程序不应该中断而是显示错误并再次询问。
  • 是的,我正在为降价编辑而苦苦挣扎,我编写了一个捕获错误的代码:try: number = float(input("Enter a number")) print(number * number, number * number * number, number ** 4) except: print("This is not a valid number") 希望你能看懂。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多