Crossin的编程教室

标题: 关于41课用文件保存游戏的问题 [打印本页]

作者: 迪克斯    时间: 2018-8-20 15:57
标题: 关于41课用文件保存游戏的问题
代码1 =代码2 代码3
结果

各位好 我学完41课 运行这个代码,总是报错s说超限  我game文件里要提前写一些内容么,写了也是报错,空内容还是报错
求指点 谢谢

作者: 风扇很响    时间: 2018-8-20 20:17
s = l.split()
你这里没有指定参数,这样就会用空格,/n,/t来分割。
但是估计你连这几种也没有,那s[]就只取到一个元素了,就没有s[1:]了,所以就list out of range了
你先想清楚出来你的game.txt想保存什么格式的数据,列出来,这样看的清楚点
作者: 迪克斯    时间: 2018-8-21 18:07
风扇很响 发表于 2018-8-20 20:17
s = l.split()
你这里没有指定参数,这样就会用空格,/n,/t来分割。
但是估计你连这几种也没有,那s[]就只取 ...

张三 1 1 1
李四 2 2 2
王五 3 3 3

我的game.txt想存成这种格式的
作者: 风扇很响    时间: 2018-8-21 21:22
本帖最后由 风扇很响 于 2018-8-21 21:23 编辑
迪克斯 发表于 2018-8-21 18:07
张三 1 1 1
李四 2 2 2
王五 3 3 3

那应该没问题啊就看这段的话
f = open("game.txt")
lines = f.readlines()
score = f.read().split()
f.close()
scores = {}
for l in lines:
    s = l.split()
    scores [s[0]] = s[1:]
你先不管后面,就运行这段试试,多加几个print

作者: 迪克斯    时间: 2018-8-22 19:06
风扇很响 发表于 2018-8-21 21:22
那应该没问题啊就看这段的话
f = open("game.txt")
lines = f.readlines()

代码 结果

这个是我打印的print f  麻烦看下有问题么
作者: 风扇很响    时间: 2018-8-22 20:25
迪克斯 发表于 2018-8-22 19:06
这个是我打印的print f  麻烦看下有问题么

这个print没什么意义,看下你后面那几个被注释掉的
作者: 迪克斯    时间: 2018-8-23 11:51
1微信图片_20180823113109.png 2微信图片_20180823113341.png
3微信图片_20180823114834.png 4微信图片_20180823114127.png

这个是我打的print,哪里有不对么

作者: 风扇很响    时间: 2018-8-23 20:15
迪克斯 发表于 2018-8-23 11:51
这个是我打的print,哪里有不对么

不好意思水平不够,这下真没看出哪里的问题......
要不等crossin来看看吧
或者你也可以直接发到41课那贴去问
作者: 迪克斯    时间: 2018-8-24 10:31
风扇很响 发表于 2018-8-23 20:15
不好意思水平不够,这下真没看出哪里的问题......
要不等crossin来看看吧
或者你也可以直接发到41课那贴 ...

好的 谢谢啦
作者: crossin先生    时间: 2018-8-25 00:09
迪克斯 发表于 2018-8-23 11:51
这个是我打的print,哪里有不对么

调试要看报错前的输出,s 是什么
作者: 迪克斯    时间: 2018-8-27 16:32
输出s-微信图片_20180827162355.png
输出的s见上图

作者: crossin先生    时间: 2018-8-27 17:00
迪克斯 发表于 2018-8-27 16:32
输出的s见上图

s为空,自然 s[0] 会报错
你看是不是你保存的文件里多加了空行
作者: 迪克斯    时间: 2018-8-27 18:44
结微信图片_20180827184047.png
我把空格去掉后S是都展示出来了,但是他不执行下边的猜大小程序,
也没有判断表里是否有此人,没有的话就自动加一条,name没有判断出来的感觉
希望老师帮忙看下哪里出了问题

作者: crossin先生    时间: 2018-8-27 22:55
迪克斯 发表于 2018-8-27 18:44
我把空格去掉后S是都展示出来了,但是他不执行下边的猜大小程序,
也没有判断表里是否有此人,没有的话就 ...

不是空格是空行
你发现没,S多了第四个空列表

把数据文件中(不是代码)多余的空行删掉
作者: 迪克斯    时间: 2018-8-29 18:53
crossin先生 发表于 2018-8-27 22:55
不是空格是空行
你发现没,S多了第四个空列表

是的 我把空行删掉了 就一切正常了 谢谢老师




欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5