评论:内置功能

这有两个部分:首先,使用一个参数定义一个函数distance_from_zero(选择您喜欢的任何参数名称)。


其次,让该函数执行以下操作:


检查它收到的输入的类型。如果类型为int或float,则函数应返回函数输入的绝对值。如果该类型是任何其他类型,则该函数应返回“不是整数或浮点数!”


代码:


def distance_from_zero(n):

print type(n)

if type(n) == int or type(n) == float:

    var = abs(n)

    print var

    return n

else:

    print "no!"

    return n


var = input("Enter number:")

print var

distance_from_zero(var)


慕的地10843
浏览 149回答 3
3回答

呼啦一阵风

首先,正如其他人所建议的那样,使用raw_input()。然后,您可以尝试将其转换为int或float。如果两者均失败,则您没有电话号码。如果要保留“原始”类型,可以使用以下命令:def distance_from_zero(n):    try:        n = int(n)    except ValueError:        try:            n = float(n)        except ValueError:            print "Not a number!"            n = float("NaN")    return abs(n)如果您不介意将输入1转换为1.0,则可以简化函数:def distance_from_zero(n):    try:        return abs(float(n))    except ValueError:        print "Not a number!"        return float("NaN")  # or remove this line to return None在这两种情况下,您都应像下面这样调用该函数:var = raw_input("Enter number: ")print distance_from_zero(var)

蛊毒传说

有两件事:input()在Python 2.7中等效于eval(raw_input())。因此,如果您输入“ hello”,它将引发一个NameError(除非有变量hello)。如果您使用的是Python 2.7,请使用raw_input()。但是,如果您使用的是python 3,请使用input(),因为raw_input()Python 3中不存在(并且输入与3中的raw_input完全相同)您还返回了n而不是var绝对值。def distance_from_zero(n):    try:        return abs(float(n))    except ValueError:        return "That is not an integer or float!"var = raw_input("Enter number:")print vardistance_from_zero(var)另外,对于检查类型,您应该使用isinstance()。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python