Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么最大值是9?_Python_Python 3.x - Fatal编程技术网

Python 为什么最大值是9?

Python 为什么最大值是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

这一次我在挥舞白旗。我有一个单独的txt文件,其中包含数字列表。我想了解的是,为什么每次的最大值都是9

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语句后不执行任何操作