如何同时接受 int 和 float 类型的输入?

新手上路,请多包涵

我正在制作货币转换器。如何让 python 接受整数和浮点数?

我就是这样做的:

 def aud_brl(amount,From,to):
    ER = 0.42108
    if amount == int:
        if From.strip() == 'aud' and to.strip() == 'brl':
            ab = int(amount)/ER
         print(ab)
        elif From.strip() == 'brl' and to.strip() == 'aud':
            ba = int(amount)*ER
         print(ba)
    if amount == float:
        if From.strip() == 'aud' and to.strip() == 'brl':
            ab = float(amount)/ER
         print(ab)
        elif From.strip() == 'brl' and to.strip() == 'aud':
            ba = float(amount)*ER
         print(ba)

def question():
    amount = input("Amount: ")
    From = input("From: ")
    to = input("To: ")

    if From == 'aud' or 'brl' and to == 'aud' or 'brl':
        aud_brl(amount,From,to)

question()

我如何做到的简单示例:

 number = input("Enter a number: ")

if number == int:
    print("integer")
if number == float:
    print("float")

这两个不行

原文由 Katrina 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 982
2 个回答

我真的希望我没有完全误解这个问题,但我走了。

看起来您只是想确保传入的值可以像浮点数一样进行操作,无论输入是 3 还是 4.79 例如,对吗?如果是这种情况,则只需在对其进行操作之前将输入转换为浮点数。这是您修改后的代码:

 def aud_brl(amount, From, to):
    ER = 0.42108
    if From.strip() == 'aud' and to.strip() == 'brl':
        result = amount/ER
    elif From.strip() == 'brl' and to.strip() == 'aud':
        result = amount*ER

    print(result)

def question():
    amount = float(input("Amount: "))
    From = input("From: ")
    to = input("To: ")

    if (From == 'aud' or From == 'brl') and (to == 'aud' or to == 'brl'):
        aud_brl(amount, From, to)

question()

(为了整洁起见,我也做了一些改动,希望你不要介意)

原文由 Spooky 发布,翻译遵循 CC BY-SA 3.0 许可协议

这就是您可以检查给定的字符串并接受 intfloat int nbfloat ):

 number = input("Enter a number: ")

nb = None
for cast in (int, float):
    try:
        nb = cast(number)
        print(cast)
        break
    except ValueError:
        pass

但在您的情况下,仅使用 float 可能会成功(因为整数的字符串表示也可以转换为浮点数: float('3') -> 3.0 ):

 number = input("Enter a number: ")

nb = None
try:
    nb = float(number)
except ValueError:
    pass

如果 nbNone 你得到的东西无法转换为 float

原文由 hiro protagonist 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题