Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.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文件中创建的数字总数的程序_Python - Fatal编程技术网

用于显示python文件中创建的数字总数的程序

用于显示python文件中创建的数字总数的程序,python,Python,我编写了以下代码以显示以下内容: 由用户选择的若干随机整数 这些整数的总和 总数 问题在于总数的显示,它是连接整数的,尽管我相信我正确地使用了int() # This program will write a series of random numbers to a file, and then read and print these numbers # total of all numbers will be displayed # number of files read from

我编写了以下代码以显示以下内容:

  • 由用户选择的若干随机整数
  • 这些整数的总和
  • 总数
问题在于总数的显示,它是连接整数的,尽管我相信我正确地使用了int()

# This program will write a series of random numbers to a file, and then read and print these numbers
# total of all numbers will be displayed
# number of files read from the file will be displayed
import random

def randomNumberMaker():
    random_numbers = open('randoms.txt', 'w')
    try:
        for i in range(int(input('How many random numbers? :'))):
            line_1 = str(random.randint(1, 501))
            random_numbers.write(line_1)
            print(line_1)
    except bad_number:
        print("A non integer was entered, sorry.")
    random_numbers.close()

randomNumberMaker()

random_number_file = open("randoms.txt", "r")

total= 0
number_of_numbers= 0
line = random_number_file.readline()

while line != "" :
    number_of_numbers += 1
    number= int (line)
    total += number
    print(number)
    line = random_number_file.readline()
print ("\nThe total number of numbers:" + str(total) +\
        "\n There are " + str(number_of_numbers)+ \
        " numbers in the file")
   

只需在每个随机数的末尾添加端点

line_1 = str(random.randint(1, 501)) + '\n'
由于没有添加任何结束行字符,因此输入文件只包含一行输入,代码真正做的是将这1个连接字符串转换为int并打印出来。

您正确使用了
int()
,但问题出在
randoms.txt
文件中。您将所有数字写在一行中,没有空格,因此程序无法知道在何处拆分数字。在写入每个数字后添加换行符可修复此问题:

random_numbers.write(line_1 + "\n")

randomNumberMaker()函数中存在问题。您将所有数字写在一行中,因此总是只返回一个数字,这是所有随机数的文本连接

换线
random\u numbers。将(line\u 1)
写入
random\u numbers。将(line\u 1+“\n”)
写入,所有操作都将按预期进行。

请为“显示总数”添加一个预期输出的示例,以便可能的答案可以解决特定问题。在写入文件时,您可能需要添加一个新行,像“随机数”。写(行1+”\n)谢谢你的朋友!