2016-10-02 4 views
0

1桁の数字または同じ最初の桁(10,11,12,13)を持つ数字を入力すると、コードは完全に機能します。しかし、この条件が満たされなくなると、プログラムは7が12より大きいと考えます。Python Section Sortは、指示されたとおりに機能しません

これは私が試みたものです。

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"は、文字列 "g"が辞書内の文字列 "ab"の後に来るように、文字列 "12"より大きい。

あなたはint型へのご入力をキャストすることによってこれを避けることができます:あなたは文字列を比較している

num = int(input_string) 
+0

ああ私の神..ありがとうございます:( – Silentstorm

関連する問題