Сортированная функция берет список и сортирует его элементы. Итак,
In [2]: sorted([1])
Out[2]: [1]
Список из одного элемента уже считается отсортированным, поскольку нет порядка для одного номера.
In [1]: sorted([312,321,213])
Out[1]: [213, 312, 321]
Три рассматриваются как числа и соответственно сортируются.
In [2]: sorted(['312','33','321'])
Out[2]: ['312', '321', '33']
Существуют рассматриваемые строки и сортируются по алфавиту
In [3]: sorted('231')
Out[3]: ['1', '2', '3']
Строка также считается списком символов, поэтому символы сортируются по алфавиту.
QN = input("what are the numbers")
def Median():
median = sorted(QN)
print ("Sorted:", median)
Median()
Вот как вы можете заставить ваш текущий код работать.
Но это, вероятно, то, что вы хотите сделать:
def Median(lst):
median = sorted(lst)
return median # you have to work on this further to actually calculate the median, this will just return the sorted list.
Numbers = []
QN = 'placeholder' # put a placeholder so we can enter the loop
print('enter your numbers, one number in each line, empty line to end')
while (QN != ''):
QN = input()
if (QN != ''):
Numbers.append(int(QN)) # make sure you put the int() because you don't want to consider the numbers as strings because in that case they will be sorted alphabetically.
print ("Sorted:", Median(Numbers))
результат:
enter your numbers, one number in each line, empty line to end
1
32
23
21
24
Sorted: [1, 21, 23, 24, 32]