2016-10-02 18 views
0

如果我輸入一個或多個具有相同第一個數字(10,11,12,13)的數字,則代碼完美工作。然而,只要這個條件不滿足,程序認爲7大於12 ...Python部分排序不會按照它的要求運行

這是我試過的。

def main(): 
mark = 0 
file_name = input('Enter the name of the file: ') 
lst = [] 
for num in open(file_name): 
    lst.append(num.strip()) 
print(lst) 
lst = sort(lst, mark) 
print(lst) 


def sort(lst, mark): 
while mark <= len(lst) - 1: 
    minval = lst[mark] 
    for i in range(len(lst)): 
     if lst[i] > minval: 
      lst[i], lst[mark] = lst[mark], lst[i] 
    minval = lst[mark] 
    mark += 1 
    sort(lst, mark) 
return lst 

main() 
+0

你比較字符串。字符串「7」比「12」大(*按字母順序進行比較)。 – zvone

回答

0

這聽起來像你正在將數字排序爲字符串而不是整數。實際上,字符串「7」比字符串「12」更大,就像字典中字符串「ab」後面的字符串「g」一樣。

您可以通過鑄造您的輸入整數避免這種情況:

num = int(input_string) 
+0

哦,我的上帝..非常感謝你:( – Silentstorm

相關問題