Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数:将变量从int改为float_Python_Python 2.7 - Fatal编程技术网

Python 函数:将变量从int改为float

Python 函数:将变量从int改为float,python,python-2.7,Python,Python 2.7,我正在学习我的第一门python课程,这应该是一件容易的事情,但我没能学好。我已经做了一个搜索,但我想这个关键字太常见了 所以,我做了一个作业,我必须写一个函数,将一个数平方。我成功地做到了以下几点: def square(x): '''x: int or float.''' return x * x 我尝试了其他函数,只是为了尝试不同的方法来进行练习,如果我尝试合并一些循环,如: def square(x): '''x: int or float.''' fo

我正在学习我的第一门python课程,这应该是一件容易的事情,但我没能学好。我已经做了一个搜索,但我想这个关键字太常见了

所以,我做了一个作业,我必须写一个函数,将一个数平方。我成功地做到了以下几点:

def square(x):
    '''x: int or float.'''
    return x * x
我尝试了其他函数,只是为了尝试不同的方法来进行练习,如果我尝试合并一些循环,如:

def square(x):
    '''x: int or float.'''
    for number in range(x):
        result = x * x
    return result

它只适用于整数(所以平方(5)给我25,但平方(5.0)给我'TypeError:range()应为整数结束参数,get float'。如何使此函数对浮点数或负数进行平方运算?请提前感谢

第二个示例中的循环实际上没有任何作用:它使用相同的数字每次覆盖
结果的值,甚至不使用循环计数器

如果您想要一种计算平方的替代方法,则仅使用循环的整数方法如下:

def square2(x):
        x = int(math.fabs(x))
        result = 0
        for i in range(x):
                result += x
        return result
这需要将
x
加在一起的
x
次之和(即,将乘法转换为加法)。它也处理负整数,但不处理浮点数。这对浮点数不起作用的原因是不能从0计数到任意浮点数(实数是不可数的)

老实说,你的问题的第一个解决方案是直截了当、简单的,因此(依我看)是最好的。

第一个问题
它只对整数有效(所以平方(5)给我25,但平方(5.0)给我'TypeError:range()应该是整数结束参数,得到浮点。

答复 因为
range
函数定义为仅获取整数数据。请参阅

例如:

>>> range(5)
[0, 1, 2, 3, 4]

>>> range(5.0)
TypeError: range() integer end argument expected, got float.

>>> range("5")
TypeError: range() integer end argument expected, got str.

>>> range(0, 5)
[0, 1, 2, 3, 4]

>>> range(0, 5.0)
TypeError: range() integer end argument expected, got float.
第二个问题
如何使该值对浮点数或负数有效?

答复
我不知道“有效”是什么意思。这取决于你想做什么。所以请评论或更新你的问题。

对于范围内的数字(int(x)):
你想在第二段代码中做什么?你实际上想做什么?你想做什么
平方(0.5)
返回?@ndpu你怎么知道这是需要的?它不会按照问题标题从
int
转换为
float
。问题很不清楚。你的循环实际上什么都不做:它每次都用相同的数字覆盖
结果的值,甚至不使用
数字anks,现在更精确了。我的意思是如何使用该函数获得浮点数的平方。因此,当您想使用浮点数进行操作时,使用范围毫无意义?是的,您不需要使用
range
,除非您想执行循环操作或处理列表(向量)如果你想要一个浮动列表,你可以写一个类似于
映射(浮动,范围(5))
。所以要创建0.0,1.0,2.0,3.0,列表,你可以使用
范围
浮动