如何完善功能。
我在python中有以下代码
def round(x,n):
return round(x,n)
我收到以下错误
>>> round(3,98.9898, 2)
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
round(3,98.9898, 2)
TypeError: round() takes exactly 2 arguments (3 given)
我认为逗号正在创建问题
任何建议......谢谢
我尝试过这个。def round(x,n):
return round(float(x.replace(",", "")),n)
没有运气。
答案 0 :(得分:2)
你是如何得到这个号码的?如果它是自动生成的,它必须是一个字符串。在使用float(number.replace(',',''))
作为回合参数时,请执行number
。
答案 1 :(得分:2)
两个问题:
round(3,98.9898, 2)
是您输入的代码。自己省略逗号,你的问题就消失了。否则,请向我们提供有关您的问题的更多信息。
def round(x, n): return round(x, n)
即使您修复了函数调用,由于最大递归,您很可能最终得到RuntimeError
。将您的函数重命名为round
以外的其他内容。
答案 2 :(得分:1)
是的,这是逗号。一个数字不能包含逗号。只应添加逗号用于显示目的,在所有计算之后,可以在将数字转换为字符串后完成。
如果您正在处理用户输入,那么它将是一个字符串,您必须在转换为float / int之前删除逗号。
我要退一步,从基础开始。这是您的实际代码吗?
round(3,98.9898, 2)
如果是这样,您将三个参数传递给函数:3
,98.9898
和2
,但该函数只接受两个。也许你的意思是以下之一:
round(98.9898, 2)
round (398.9898, 2)
或其他一些变体?
答案 3 :(得分:1)
是的,这是逗号。在Python中创建浮点数,您只使用该点。逗号做了很多其他事情!
编辑:你想做什么?你的号码是多少?