首页 > 解决方案 > 如何仅获取整数或浮点输入

问题描述

我正在尝试用python制作一个计算器。但是,我希望用户能够输入整数或浮点数。但不是字符串,我该怎么做?

这是我当前的代码,但是,if 语句没有完成预期的工作。

def calculator():
     x = (input("Please enter a number: "))

     y = (input("Please enter a second number"))

     if x or y != int or float:

          print("Invalid input, please enter a number")
          x = input("Please enter a number: ")
          y = input("Now, please enter a second number: Press enter to leave blank: ")

标签: pythonstringif-statementinputinteger

解决方案


使用内置isinstance函数。

def calculator():
    def checker():
        try:
            x = int(input("Please enter a number: "))
            assert (isinstance(x, int) or isinstance(x, float))
            y = int(input("Please enter a second number: "))
            assert (isinstance(y, int) or isinstance(y, float))
        except (AssertionError, ValueError):
            print("Invalid input!")
            checker()
    checker()
    # <Your code here...>
calculator()

推荐阅读