Crossin的编程教室

标题: 【Python 第41课】 用文件保存游戏(3) [打印本页]

作者: 地方成功    时间: 2018-7-14 14:26
标题: 【Python 第41课】 用文件保存游戏(3)
for n in scores:    line = n + ' ' + ' '.jion(scores[n])+'\n'这段怎么理解,出错了


webwxgetmsgimg (1).jpg (197.46 KB, 下载次数: 525)

webwxgetmsgimg (1).jpg


作者: 地方成功    时间: 2018-7-14 14:26
https://mp.weixin.qq.com/mp/appm ... b83464081f7e9d3d067
作者: crossin先生    时间: 2018-7-14 16:11
请把报错发上来

你写的那句话里是 jion,应该是 join

这里是2步
' '.jion(scores[n])  是字符串和列表那里有说
之后就是把几段字符加一起
作者: 地方成功    时间: 2018-7-14 16:27
crossin先生 发表于 2018-7-14 16:11
请把报错发上来

你写的那句话里是 jion,应该是 join

噢噢~的确是我大意了,谢谢谢。
但是,最后保存到文件
result += line

f = open('duodata.txt','w')
f.write(result)
f.close()

这样吗,这样保存的总是只有一行。。
比如
we 1 1 1

作者: 地方成功    时间: 2018-7-14 16:39
crossin先生 发表于 2018-7-14 16:11
请把报错发上来

你写的那句话里是 jion,应该是 join

噢噢,搞懂了应该把result += line也放进for循环里。
谢谢了
作者: wzy6712881    时间: 2018-7-17 22:49
crossin先生 发表于 2018-7-14 16:11
请把报错发上来

你写的那句话里是 jion,应该是 join

大佬您好,我在进行这一课的过程中。

在这个游戏中如果输入英文名就可以顺利进行,但如果输入中文名就会报错。
在网上查了一下是unicode的问题,但没有搞懂为什么,请问这种情况该该如何处理呢?
多谢!

作者: crossin先生    时间: 2018-7-17 22:54
wzy6712881 发表于 2018-7-17 22:49
大佬您好,我在进行这一课的过程中。

在这个游戏中如果输入英文名就可以顺利进行,但如果输入中文名就会 ...

上代码,上报错,具体问题具体分析
作者: wzy6712881    时间: 2018-7-17 23:01
C:\Users\I353662\Desktop
作者: wzy6712881    时间: 2018-7-17 23:11
代码1

1. 如图所示报错信息,当我试图输入中文字符时就会报错。

2. 我在完成前面课程——输入刘备关羽诸葛亮成绩时就存在类似问题:
当我在txt文件中输入中文试图保存时会提示我“该文件含有unicode格式的字符,当文件保存为ANSI编码的文本文件时,该字符将丢失。”
当我另存为unicode编码的文本后,用python读取数据print出来的就是乱码。
请问该如何解决多谢大佬。

3. 我学python主要是应对数据分析的使用需求,请问您是否有针对数据分析的付费课程呢?

多谢您的解答,感激不尽.


代码2.png (50.62 KB, 下载次数: 461)

代码2

代码2

30985f317762c7dbfa534846ea63a3a.png (68.87 KB, 下载次数: 462)

报错信息

报错信息


作者: wzy6712881    时间: 2018-7-17 23:13

发错了不好意思

30985f317762c7dbfa534846ea63a3a.png (68.87 KB, 下载次数: 469)

30985f317762c7dbfa534846ea63a3a.png


作者: wzy6712881    时间: 2018-7-17 23:14
crossin先生 发表于 2018-7-17 22:54
上代码,上报错,具体问题具体分析

我在楼下粘了图片,多谢大佬
作者: crossin先生    时间: 2018-7-18 16:03
wzy6712881 发表于 2018-7-17 23:13
发错了不好意思


加上参数 f = open('game.txt', 'w', encoding='gbk')
gbk和utf8都试下

目前没有专门数据分析的课程
作者: BLACKADDER    时间: 2018-7-18 23:58
wzy6712881 发表于 2018-7-17 23:11
1. 如图所示报错信息,当我试图输入中文字符时就会报错。

2. 我在完成前面课程——输入刘备关羽诸葛亮成 ...

你用的是 input() 而不是 raw_input(),改一下应该就好了吧?
作者: wzy6712881    时间: 2018-7-19 09:58
BLACKADDER 发表于 2018-7-18 23:58
你用的是 input() 而不是 raw_input(),改一下应该就好了吧?

我是python3.6,没有raw的函数了。。
作者: wzy6712881    时间: 2018-7-19 10:26
crossin先生 发表于 2018-7-18 16:03
加上参数 f = open('game.txt', 'w', encoding='gbk')
gbk和utf8都试下

代码我只改了最后open的参数
我只改了最后open的参数,先后改为了gbk和utf-8
感谢大佬。 解决了中文输入的问题,但进一步遇到了报错

gbk报错
gbk报错:输入中文后程序可以运行,但保存到txt中是乱码。导致第二次输入相同中文后不能匹配之前的记录。

utf报错
utf-8报错:输入中文后程序可以运行,也将中文保存到了txt中。 但第二次读取数据readline时出现了问题(?)。后面decoding我就看不懂了。。。

utf报错后txt截图
这是utf-8报错后,txt的截图
感谢大佬!












作者: crossin先生    时间: 2018-7-19 16:28
wzy6712881 发表于 2018-7-19 10:26
我只改了最后open的参数,先后改为了gbk和utf-8
感谢大佬。 解决了中文输入的问题,但进一步遇到了报错
...

开始读文件的地方也要用相同编码
另外如果你文件开头有声明 encoding ,也要是一样的
作者: 迪克斯    时间: 2018-8-24 10:55
1-1微信图片_20180824105104.png 1-2微信图片_20180824105131.png 1-3微信图片_20180824105158.png
结果 微信图片_20180824104612.png 微信图片_20180821180600.png
我想问下运行之后,总报这个错误是什么原因 ?大佬们帮忙看看









作者: crossin先生    时间: 2018-8-25 00:08
迪克斯 发表于 2018-8-24 10:55
我想问下运行之后,总报这个错误是什么原因 ?大佬们帮忙看看

把 s 输出来看是什么问题




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