我有一些代码可以从文本文件中读取,用于打印最大和最小高度,但是最小高度不打印,也没有错误。
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()
如果需要的话,我将包含“高度”文本文件,并且再次显示最小高度不打印
答案 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用作最小值。