Python 修复TypeError:排序后的参数应为1,得到3
如何修复此代码,使其检查(a、b、c)中的数字是否已排序,如果未排序,则返回如上所示的值错误Python 修复TypeError:排序后的参数应为1,得到3,python,list,sorting,error-handling,typeerror,Python,List,Sorting,Error Handling,Typeerror,如何修复此代码,使其检查(a、b、c)中的数字是否已排序,如果未排序,则返回如上所示的值错误 def are_sorted(a, b, c): if sorted(a, b, c) != (a, b, c): raise ValueError("Must be ascending.") else: return [a, b, c] print(are_sorted(1.6, 3.1, 2.7)) print(are_sorted(-2
def are_sorted(a, b, c):
if sorted(a, b, c) != (a, b, c):
raise ValueError("Must be ascending.")
else:
return [a, b, c]
print(are_sorted(1.6, 3.1, 2.7))
print(are_sorted(-2.3, 12.7, 28))
现在,它返回一个错误,读取:
TypeError:排序后应为1个参数,得到3个
第三行
第3行中解决此问题的最简单方法是什么?似乎您需要
*args
。
sorted
接受1个参数,
分隔参数,因此python认为您正在传递三个参数。相反,您可以传入一个iterable,例如元组或列表*args
将是您在这里的朋友
def are_sorted(*args):
print(args)
if sorted(args) != args:
raise ValueError("Must be ascending.")
else:
return args
print(are_sorted(10,5,2))
输出
(10, 5, 2)
Traceback (most recent call last):
File "<string>", line 9, in <module>
File "<string>", line 4, in are_sorted
ValueError: Must be ascending.
(10,5,2)
回溯(最近一次呼叫最后一次):
文件“”,第9行,在
中第4行的文件“”已排序
ValueError:必须为升序。
sorted([1,2,3])最简单的方法是(1)阅读文档(2)照它说的做。您可以对一个序列(一个具有定义良好的小于关系的iterable)进行排序,而不是对单个值的任意序列进行排序。用括号把它们括起来,并称之为“完成”。注意,如果