不计算以前文件中的所有数字?蟒蛇

时间:2014-12-08 00:05:51

标签: file python-3.x

我遇到的问题是,在打开文件后,它只会计算随机生成的最后一个数字,并且不会添加所有数据。例如,如果您使用数字量为2,它将仅显示生成的最后一个数字而不是所有数字。这是提示:

编写一个程序,将一系列随机数写入文件。每个随机数应该在1到500的范围内。应用程序应该让用户指定文件将包含多少个数字。下一个程序应该从文件中读取随机数,显示数字,然后显示数字的总数和从文件中读取的数字的数量。

# import the random module
import random

# open the file to write to
random_numbers = open('ran_numbers.txt', 'w')
# ask for numbers written to the file
numberOfNumbers = int(input("How many numbers do you want written to the file?: "))
print("Your random numbers are: ")
# number selection
for count in range (numberOfNumbers):
    number = random.randint(1,500)
    print(number)
# writing numbers to file with new line after
random_numbers.write(str(number)+ '\n')
# close
random_numbers.close()

random_numbers = open('ran_numbers.txt', 'r')
number = 0
total = 0
print("List of numbers:")
for line in random_numbers.readlines():
        print(line)
        total = total+int(line)
        number +=1
print("The Sum of the numbers = "+str(total))
print("The total amount of numbers read are "+str(number))

2 个答案:

答案 0 :(得分:1)

只需在语句中缩进4个空格" random_numbers.write(str(number)+' \ n')"所以它来自for循环。然后您将获得所需的输出。实际上发生的事情是你只写了最后一个数字到你的文件,因为你的写作语句不在for循环中。

答案 1 :(得分:0)

我不打算为你做功课,但我建议你这样做:

  1. 仔细阅读您的代码,思考每条线路的作用。
  2. 如果您没有看到错误,请在调试器下运行您的代码,并观察发生了什么。