我有一些代码,它从文本文件中读取,并打算打印最大和最小高度,但最小高度不打印,也没有错误。
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()
我将包括高度文本文件,如果它是必要的,并再次最低高度不打印
发布于 2019-05-28 17:34:55
我假设,您的文件可能包含数字和换行符(\n
)
你在这里读到它:
read = altitude.readlines()
此时,read
是一个字符串列表。
现在,当你这样做的时候:
minA = (min(read))
它正在尝试获取“read
中最小的字符串”
最小的字符串通常是空字符串""
-它很可能存在于文件的末尾。
所以你的minAlt
实际上已经打印出来了。但它恰好是空字符串。
您可以通过将读取的行解析为数字来修复它。
read = [float(a) for a in altitude.readlines() if a]
发布于 2019-05-28 17:36:18
尝试下面的解决方案
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()
发布于 2019-05-28 17:37:35
将您的代码更改为以下代码
with open('numbers.txt') as nums:
lines = nums.read().splitlines()
results = list(map(int, lines))
print(results)
print(max(results))
前两行读取文件并将其存储为列表。第三行将字符串列表转换为整数,最后一行在列表中搜索并返回max,使用min表示最小值。
https://stackoverflow.com/questions/56347355
复制