Python 为什么最大值是9?
这一次我在挥舞白旗。我有一个单独的txt文件,其中包含数字列表。我想了解的是,为什么每次的最大值都是9Python 为什么最大值是9?,python,python-3.x,Python,Python 3.x,这一次我在挥舞白旗。我有一个单独的txt文件,其中包含数字列表。我想了解的是,为什么每次的最大值都是9 def main(): writeFile() numbers = readFile() statFile(numbers) def writeFile(): import random outfile = open('numbers.dat', 'w') for i in range(100): number = r
def main():
writeFile()
numbers = readFile()
statFile(numbers)
def writeFile():
import random
outfile = open('numbers.dat', 'w')
for i in range(100):
number = random.randint(1, 1001)
outfile.write(str(number)+ '\n')
outfile.close()
return print("All numbers have been generated and written to file.")
def readFile():
infile = open('numbers.dat', 'r')
return (infile.read())
infile.close()
def statFile(numbers):
return print("The largest number is: ", max(numbers))
main()
导致此问题的每行“\n”都有一个delimeter。以下更改将给出正确答案:
numbers = readFile().split("\n")
另外,file.read()将读取numbers变量中的整个文件内容,而不是作为List/Array。因为代码中的数字是一个整数值字符串。max函数返回任何字符串的最大字母值,即9。您当前正在查找字符串的最大字符
infle.read()
不返回数值,也不分割单独的行
您需要将文件读入数字列表
def readFile():
with open('numbers.dat') as infile:
return (int(line) for line in infile)
infle.close()
在这里是死代码。在函数中运行return语句后不执行任何操作