【发布时间】:2017-03-29 04:23:42
【问题描述】:
我正在尝试编写两个函数。一个生成 1 到 100 之间的随机数,参数是数字的频率,将信息保存到文件中,另一个读取该文件并显示:总和、平均值、最高和最低值。我已经设法使第一个功能起作用,但是第二个功能却没有。运行程序时,我得到 TypeError: 'int' object is not iterable due to the "number=int(number)" line in the readNumbers() function,我不明白,因为我认为数字必须改变从字符串到 int 以使方程式起作用。任何帮助,将不胜感激。还有一种方法可以不用max()和min()就可以找到最大值和最小值,我个人很想知道。
def generateNumbers(i):
myFile=open("numbers.txt","w")
for n in range(i):
import random
numbers=random.randint(1,100)
numbers=str(numbers)
myFile.write(numbers)
myFile.close()
generateNumbers(400)
def readNumbers():
myFile=open("numbers.txt","r")
for number in myFile:
number=int(number)
total=(sum(number))
average=sum/float(len(number))
while number!=-1:
num_list.append(number)
high= max(num_list)
low= min(num_list)
print(total,average,high,low)
myFile.close()
readNumbers()
【问题讨论】:
-
错误不在该行。它在下一个。您正在尝试获取 one 数字的总和。这没有任何意义。
-
另外,
len()不能应用于下一行的<type 'int'>。
标签: python