为了账号安全,请及时绑定邮箱和手机立即绑定

评论:内置功能

评论:内置功能

慕的地10843 2021-03-28 19:15:42
这有两个部分:首先,使用一个参数定义一个函数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 nelse:    print "no!"    return nvar = input("Enter number:")print vardistance_from_zero(var)
查看完整描述

3 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

首先,正如其他人所建议的那样,使用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)


查看完整回答
反对 回复 2021-04-06
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

有两件事:


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 var

distance_from_zero(var)

另外,对于检查类型,您应该使用isinstance()。


查看完整回答
反对 回复 2021-04-06
  • 3 回答
  • 0 关注
  • 148 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号