Мой код не сортируется?
Мне нужно создать программу, которая будет: открывать файл, состоящий из разных наборов из трех чисел, а затем выводить наименьшее число для каждой строки. (Примечание: я должен сделать это без использования функции min()!)
Например, если файл говорит:
6,3,5
4,4,8
3,7,2
1,8,9
9,0,6
Следует напечатать:
3
4
2
1
0
Мой код:
def smallest(*lowest):
small_numbers = [lowest]
small_numbers.sort()
def main():
input_file = open("datanums.txt", "r")
number_file = input_file.readlines()
smallest(number_file)
for i in range(len(number_file)):
print number_file[i][0]
main()
Когда я запускаю его, кажется, что он печатает первое число для каждой строки в файле вместо того, чтобы печатать самое маленькое число в файле. Как я могу это исправить?
1 ответ
Решение
Нужны некоторые изменения, надеюсь, вы сможете разобраться в этом рабочем примере и посмотреть, что я сделал:
def smallest(numbers):
newlist = numbers.split(',') #splits the incoming comma-separated array
newlist.sort() #sorts alphabetically/numerical
return newlist[0] #returns the first value in the list, now the lowest
def main():
input_file = open("num.txt", "r")
number_file = input_file.readlines()
for i in range(len(number_file)):
print smallest(number_file[i]).rstrip() #rstrip strips \n from output
main()