如何解决Python冒泡排序中的TypeError错误?
Python冒泡排序程序中的列表创建错误修复
你遇到的TypeError: list expected at most 1 argument, got 5是因为**list()构造函数只能接收一个可迭代对象(比如元组、另一个列表等)作为参数**,而你直接传入了5个独立的数值参数,不符合它的调用规则。
修正方案
有两种方式可以正确创建包含这5个数值的列表:
- 直接用方括号创建(推荐,写法更简洁):
lista = [n1, n2, n3, n4, n5] - 将数值打包成元组后传入
list():lista = list((n1, n2, n3, n4, n5))
修正后的完整代码
print('Olá!') msg = 'Olá!' n1 = float(input('Digite um número qualquer:')) n2 = float(input('Digite outro número qualquer:')) n3 = float(input('Digite outro número qualquer:')) n4 = float(input('Digite outro número qualquer:')) n5 = float(input('Digite outro número qualquer:')) # 修正列表创建方式 lista = [n1, n2, n3, n4, n5] def bubble_sort(arr): n = len(arr) for i in range(n): for j in range(0, n - i - 1): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] return arr print(bubble_sort(lista)) print('Fim')
你的冒泡排序逻辑本身是正确的,修正列表创建方式后程序即可正常运行,输出按升序排列的数值列表。
内容的提问来源于stack exchange,提问作者Pedro Porto
相关产品推荐
相关产品推荐

