挣扎着蟒蛇作业

时间:2017-09-21 14:21:48

标签: python

我有一个带有一些行的.txt文件:

325255, Jan Jansen      
334343, Erik Materus   
235434, Ali Ahson  
645345, Eva Versteeg  
534545, Jan de Wilde  
345355, Henk de Vries 
  1. 编写一个以打开文件kaartnummers.txt
  2. 开头的程序
  3. 确定文件中的行数和最大卡号。然后打印这些数据。
  4. 我的代码还没有完成,但我尝试了至少!:

    def kaartinfo():
        lst = []
        infile = open('kaartnummers.txt', 'r')
        content = infile.readlines()
    
        print(len(content))
        for i in content:
            print(i.split())
    kaartinfo()
    

    我知道我的程序会打开文件并计算其中的行数..所有这些都是错误的< 3

    我无法弄清楚如何获取列表中的最大数字..如果您有答案,请使用简单易读的Python语言。

2 个答案:

答案 0 :(得分:0)

我不擅长python,并且可能有更优雅的解决方案,但这就是我要做的。有人可能会说这就像python中的C ++ / Java,许多人都倾向于避免。

def kaartinfo():
    lst = []
    infile = open('kaartnummers.txt', 'r')
    content = infile.readlines()

    for i in content:
        value = i.split(',')
        value[0] = int(value[0])
        lst.append(value)

    return lst

使用kaartinfo()函数检索列表

my_list = kaartinfo()

假设第一个值是最大值

maximumValue = my_list[0][0]

浏览列表中的每个值,检查它们是否大于当前最大值

# if they are, set them as the new current maximum
for ele in my_list:
    if ele[0] > maximumValue:
        maximumValue = ele[0]

当上述循环结束时,最大值将是列表中的最大值。

#Convert the integer back to a string, and print the result
print(str(maximumValue) + ' is the maximum value in the file!')

答案 1 :(得分:0)

这应该足以完成这项工作:

with open('kaartnummers.txt', 'r') as f:

    data = f.readlines()

    print('There are %d lines in the file.' % len(data))
    print('Max value is %s.' % max(line.split(',')[0] for line in data))

根据您提供的输入文件,输出将为:

  

文件中有6行。

     

最大值为645345。

当然,如果你愿意,可以把它放在一个函数中。