问题遇到的现象和发生背景
编写以下三个函数并依次调用,注意在每个函数内部打开文件并关闭。
(1)定义函数def f_write():用随机函数生成10行数据,每行数据个数3到8个不等,每个整数的范围为[-50,50]。把这些数据保存为data.txt
(2)定义函数def f_read(),用read函数求文件data.txt中全部数字的最大值(不能用max,sort函数),并输出
(3)定义函数def r_readlines(),用readlines()函数读文件,计算文件data.txt每一行各个数的和,并输出和的最大值。
问题相关代码,请勿粘贴截图
def f_write():
f=open('data.txt','w+')
import random
for i in range(11):
n=random.randint(3,8)
for m in range(n+1):
m=[]
m.append(random.randint(-50,50))
m.append('')
fo.write(m)
fo.close()
运行结果及报错内容
文件写入没有运行结果,也没报错
我的解答思路和尝试过的方法
没思路,感觉就是全错的
你前面打开的文件赋值给变量f,后面却用fo。第一句的f改成fo试试
此外,代码还是有些小问题,修改如下:
def f_write():
fo=open('data.txt','w+')
import random
for _ in range(11):
n=random.randint(3,8)
m=[]
for _ in range(n):
m.append(str(random.randint(-50,50)))
fo.write(' '.join(m)+'\n')
fo.close()
f_write()
后面的也写了
def f_read():
fo=open('data.txt','r+')
s=fo.read()
maxnum=-50
for i in s.split():
if int(i)>maxnum:
maxnum=int(i)
print(maxnum)
def f_readlines():
fo=open('data.txt','r+')
s=fo.readlines()
maxsum=-400
for i in s:
temp=sum(map(int,i.split()))
if temp>maxsum:
maxsum=temp
print(maxsum)