0

我必须创建一个程序,它将:打开一个由不同的三个数字组组成的文件,然后为每一行输出最小的数字。(注意:我必须在不使用 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()

当我运行它时,它似乎是打印文件中每一行的第一个数字,而不是打印文件中的最小数字。我怎样才能解决这个问题?

4

1 回答 1

2

需要进行一些更改,希望您可以对这个工作示例进行排序,看看我做了什么:

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()
于 2013-12-08T22:52:28.760 回答