如何指定参数类型?
How to specify argument types?
我是一个 Python 新手,但我已经搜索了一个解决方案,但我被难住了。
我定义了一个接受多个参数的函数:
def func(arg1, arg2, arg3):
第一个参数将是一个字符串,但接下来的两个参数将始终是整数。我需要构建以下 for
循环。
for x in range(0, arg2 / 2):
问题是 arg2
默认键入 float
,结果我得到以下信息:
TypeError: 'float' object cannot be interpreted as an integer
我试过:
for x in range(0, int(arg2) / 2):
但出于某种原因,同样的事情发生了。如何指定 arg2
应作为整数,或者如何将其重新解释为整数?
尝试对整个公式进行舍入
for x in range(int(arg2/2))
在Python 3.x:
当你 arg2 / 2
你会得到一个浮动。如果你想要一个 int 试试 arg2 // 2
例如 2 / 2 = 1.0
但 2 // 2 = 1
但是你这样做会失去准确性,但既然你想要一个整数,我假设你无论如何都想向上或向下舍入。
在python中2.x/默认是int除法;要获得浮点数除法,您必须确保其中一个数字是浮点数。
已编辑:
正如@martineau 指出的那样,在 Python 2.x 和 3.x 中,如果分子或分母是浮点数,/ 将进行浮点除法并且 // 将产生浮点结果。要解决此问题,请将其转换为 int 或确保它是一个 int ...
2.0 / 2 = 1.0
和 2.0 // 2 = 1.0
和 2 / 2.0 = 1.0
和 2 // 2.0 = 1.0
2.5 / 2 = 1.25
和 2.0 // 2 = 1.0
和 2 / 2.5 = 0.8
和 2 // 2.5 = 0.0
我是一个 Python 新手,但我已经搜索了一个解决方案,但我被难住了。
我定义了一个接受多个参数的函数:
def func(arg1, arg2, arg3):
第一个参数将是一个字符串,但接下来的两个参数将始终是整数。我需要构建以下 for
循环。
for x in range(0, arg2 / 2):
问题是 arg2
默认键入 float
,结果我得到以下信息:
TypeError: 'float' object cannot be interpreted as an integer
我试过:
for x in range(0, int(arg2) / 2):
但出于某种原因,同样的事情发生了。如何指定 arg2
应作为整数,或者如何将其重新解释为整数?
尝试对整个公式进行舍入
for x in range(int(arg2/2))
在Python 3.x:
当你 arg2 / 2
你会得到一个浮动。如果你想要一个 int 试试 arg2 // 2
例如 2 / 2 = 1.0
但 2 // 2 = 1
但是你这样做会失去准确性,但既然你想要一个整数,我假设你无论如何都想向上或向下舍入。
在python中2.x/默认是int除法;要获得浮点数除法,您必须确保其中一个数字是浮点数。
已编辑:
正如@martineau 指出的那样,在 Python 2.x 和 3.x 中,如果分子或分母是浮点数,/ 将进行浮点除法并且 // 将产生浮点结果。要解决此问题,请将其转换为 int 或确保它是一个 int ...
2.0 / 2 = 1.0
和 2.0 // 2 = 1.0
和 2 / 2.0 = 1.0
和 2 // 2.0 = 1.0
2.5 / 2 = 1.25
和 2.0 // 2 = 1.0
和 2 / 2.5 = 0.8
和 2 // 2.5 = 0.0