为什么最大数字出现在9?

时间:2018-04-07 19:43:22

标签: 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 = 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()

3 个答案:

答案 0 :(得分:0)

每行“\ n”都有一个分隔符导致此问题。以下更改将给出正确答案:

numbers = readFile().split("\n")

file.read()也将读取数字变量中的整个文件内容,而不是List / Array。

答案 1 :(得分:0)

因为代码中的数字是一个整数值字符串。 max函数返回任何字符串的最大字母值,即9。

答案 2 :(得分:0)

您目前正在查找字符串的最大字符。

infile.read()不会返回数值,也不会拆分单行

您需要将文件读入数字列表

def readFile():
    with open('numbers.dat') as infile:
        return (int(line) for line in infile)