如何在文件的每一行中找到大数字

时间:2018-12-08 12:44:28

标签: python python-3.x

编写一个程序,打开一个包含以下四行数字的以下文件(numbers1.txt):

numbers1.txt
 100   900
-3.2   25.9 
30       11
 ( Empty line)
200    500 

程序应读取每一行中的两个数字,并使用max()函数显示最大值 该程序应该在没有电话号码的情况下打印一条消息

我的代码不起作用?

f=open('numbers1.txt','r')
list1=f.readlines()
for i in list1:
    print(max(i))

4 个答案:

答案 0 :(得分:0)

怎么了?

尝试一下:

SetOnClickListener 没有空行。

答案 1 :(得分:0)

max()的参数应该是一个序列。使用split()将字符串更改为序列。

for i in list1:
    if len(i) != 1:  # not empty line
        print(max(i.split()))

别忘了关闭文件,或将open('numbers1.txt')与f一起使用,它会自动关闭文件。

答案 2 :(得分:0)

您的代码存在一些问题:

  1. 使用单个字符串参数(例如字符串max())调用'100 900'函数,但是期望两个值。为此,请使用line.split()
  2. 我估计应该在评估float之前将字符串值转换为max()
  3. 您应该处理空行。
  4. 您应在阅读后关闭文件。

此代码应解决问题:

with open('numbers.txt', 'r') as f:
    lines = f.readlines()
    for line in lines:
        if line.strip() == '':
            continue
        n1, n2 = line.split()
        max_value = max(float(n1), float(n2))
        print(max_value)

该代码段可以缩写,但是我只是为了教学目的添加了额外的行。

答案 3 :(得分:0)

另一个解决方案可能是:

n = len(list1)
for i in range(0,n):
    x = (list1[i].split())
    if not x: # skip if line is empty
        continue
    print(max(x))