n = int(input("请输入整数的个数:")) lst = [] for i in range(n): x = int(input("请输入一个整数:")) lst.append(x) 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 lst=bubble_sort(lst)问题在哪,为什最后不会出现数列
时间: 2024-01-21 22:02:27 浏览: 83
这段代码存在一些问题。首先,在输入整数时,应该先检查用户输入的是否为数字,可以使用try-except语句来实现。其次,函数bubble_sort中应该对输入的列表进行判断,如果列表为空或只有一个元素,直接返回该列表即可,否则进行冒泡排序。最后,需要在主程序中输出排序后的列表。
修改后的代码如下:
```python
n = int(input("请输入整数的个数:"))
lst = []
for i in range(n):
while True:
try:
x = int(input("请输入一个整数:"))
lst.append(x)
break
except ValueError:
print("输入不是整数,请重新输入!")
def bubble_sort(arr):
n = len(arr)
if n <= 1:
return 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
lst = bubble_sort(lst)
print("排序后的列表为:", lst)
```
运行该程序,就可以输入整数,进行排序,并输出排序后的列表了。
阅读全文