返回金额时数字未在python中打印

时间:2019-05-28 17:27:51

标签: python

我有一些代码可以从文本文件中读取,用于打印最大和最小高度,但是最小高度不打印,也没有错误。

altitude = open("Altitude.txt","r")

read = altitude.readlines()

count = 0

for line in read:
    count += 1

count = count - 1
print("Number of Different Altitudes: ",count)


def maxAlt(read):
    maxA = (max(read))
    return maxA

def minAlt(read):
    minA = (min(read))
    return minA

print()
print("Max Altitude:",maxAlt(read))
print("Min Altitude:",minAlt(read))
altitude.close()

如果需要的话,我将包含“高度”文本文件,并且再次显示最小高度不打印

3 个答案:

答案 0 :(得分:1)

我假设您的文件可能包含数字和换行符(\n

您正在这里阅读它:

read = altitude.readlines()

此时read是一个字符串列表。

现在,当您这样做时:

minA = (min(read))

它试图获取“ read中最小的字符串”

最小的字符串通常是空字符串""-它很可能存在于文件末尾。

因此您的minAlt实际上正在打印。但这恰好是空字符串。

您可以通过将读取的行解析为数字来解决此问题。

read = [float(a) for a in altitude.readlines() if a]

答案 1 :(得分:0)

尝试以下解决方案

altitudeFile = open("Altitude.txt","r")

Altitudes = [float(line) for line in altitudeFile if line] #get file data into list.

Max_Altitude = max(Altitudes)
Min_Altitude = min(Altitudes)

altitudeFile.close()

答案 2 :(得分:0)

将代码更改为此

with open('numbers.txt') as nums:
        lines = nums.read().splitlines()

results = list(map(int, lines))
print(results)
print(max(results))

前两行读取文件并将其存储为列表。第三行将字符串列表转换为整数,列表中的最后一个搜索并返回max,将min用作最小值。