冒泡排序算法输入不工作(Python)

冒泡排序算法输入不工作(Python),python,input,bubble-sort,Python,Input,Bubble Sort,这是一个关于python中数组处理的问题 我有以下代码,它从变量排序中读取一个数字数组: 打印(“原件:”,已排序) 对于范围(0,长度(已排序))中的较大重复: 对于范围(0,长度(已排序)-1)内的重复: Number1=已排序[重复] Number2=已排序[重复+1] 如果编号1>编号2: 已排序[重复]=已排序[重复+1] 已排序[重复+1]=编号1 打印(“已排序:”,已排序) 现在,我的问题是,我可以用两种不同的方式为数组赋值,硬编码到程序中: sorted=[1,11,22,

这是一个关于python中数组处理的问题

我有以下代码,它从变量
排序中读取一个数字数组:

打印(“原件:”,已排序)
对于范围(0,长度(已排序))中的较大重复:
对于范围(0,长度(已排序)-1)内的重复:
Number1=已排序[重复]
Number2=已排序[重复+1]
如果编号1>编号2:
已排序[重复]=已排序[重复+1]
已排序[重复+1]=编号1
打印(“已排序:”,已排序)

现在,我的问题是,我可以用两种不同的方式为数组赋值,硬编码到程序中:

sorted=[1,11,22,2]

或者通过用户输入,使用
split()
拆分提供的数字:

inputs=input(“以逗号(,)分隔值形式输入数字:”)
ToSort=inputs.split(“,”)
排序=排序

如果使用永久方法,程序将正确返回:

原件:[1,11,22,2]
排序:[1,2,11,22]
但是,如果我使用用户输入,程序将错误地返回:

原件:['1','11','22','2']
排序:['1','11','2','22']

任何人都可以提供任何关于为什么会发生这种情况的见解,我已经试过多次运行这个程序,并将它隔离到这个特定的部分

我还注意到,它以文本字符串的形式返回用户输入中的数字,但我不认为这会导致问题。(对不起,我对这个很陌生!)

提前谢谢


编辑:谢谢你,这是我的荣幸

您需要将每个输入强制转换为
int

ToSort = list(map(int, inputs.split(",")))

需要明确的是,用户输入的文本字符串是一个大问题,因为对于计算机来说,字符串只是ASCII数字,而不是字符串中存储的值。@M-Chen-3,谢谢,这很有意义!只是出于好奇。为什么要编写自己的排序,而不仅仅是使用Python的内置排序?冒泡排序是最糟糕的排序算法之一。它甚至比其他O(n^2)算法还要慢。您的整个代码可以重写为
sorted.sort()
@FrankYellin,这是有人对我提出的挑战。为了教育目的。不是工作,只是挑战。我害怕这是一个家庭作业或什么的,我想知道为什么他们教你的道德相当于倒带录像机或拨旋转电话。