Python - 代码不断返回不需要的"无"声明

时间:2016-04-30 11:13:03

标签: python

我的代码返回了一个不需要的"无"声明。我已经搜索了其他问题,希望找到解决方案,但我似乎无法弄明白。任何帮助将不胜感激。

def int_mult(no1,no2):
    try:
        no3 = int(no1)
        no3 = int(no2)
    except ValueError:
        return print("Error: Invalid Argument Type")
    no1 = int(round(no1))
    no2 = int(round(no2))
    return (no1 * no2)



print (int_mult(4.49,"apple"))

2 个答案:

答案 0 :(得分:2)

我认为最好的方法是实际提出异常。

def int_mult(no1, no2):
    try:
        return int(no1) * int(no2)
    except ValueError:
        raise TypeError("Invalid Argument Type")


try:
    print(int_mult_(4.49, "apple"))
except TypeError as e:
    print(", ".join(e.args))

答案 1 :(得分:0)

在第5行

你说:

return print("Error: Invalid Argument Type")

这并不告诉python在打印函数中返回字符串IN。 相反,它告诉python返回打印功能。

这可能会更清楚:

在你的最后一行中你写道:

print (int_mult(4.49,"apple"))

所以第一个python运行int_mult()函数,函数返回

print("Error: Invalid Argument Type")

然后python打印,就像你在最后一行中订购的那样,确切地说是你的Int_mult()函数返回的内容。对于python,它看起来像这样:

print ( print("Error: Invalid Argument Type") )

在这一行中,Python首先运行函数print("Error: Invalid Argument Type")并打印字符串。之后,python运行打印(打印(“错误:无效的参数类型”)并打印将返回None或类似{{1}的内容的打印函数}}

如果我是你,我只会将第5行更改为

<function house at 0x7f494763abf8>

和你的最后一行

return ("Error: Invalid Argument Type")

我希望我帮助过你。