- 帖子
- 5
- 精华
- 0
- 积分
- 29
- 阅读权限
- 10
- 注册时间
- 2017-3-3
- 最后登录
- 2017-9-25
|
本帖最后由 疾风魔狼剑 于 2017-3-13 15:37 编辑
crossin先生 发表于 2017-3-9 15:08
难道不应该是 i.replace 吗?为啥写 f.replace
另外,你这里逗号句号应该是中文的吧 ...
from random import randint
import linecache
score=0
f=open('chg.txt') #文本内容就是上面格式化以后的长恨歌
count=0
while count>=0:
r=randint(1,120)
x=linecache.getlines('.\chg.txt')[r]#随机取一行
print x #打印这一行
t=len(x)
h=x[t-3:t-1] #取每行最后的标点
if h==',': #如果是‘,’ 则要求回答下阙
answer=linecache.getlines('.\chg.txt')[r+1]
answer=answer[:-1]
else: #否则回答上阙
answer=linecache.getlines('.\chg.txt')[r-1]
answer=answer[:-1]
quest=raw_input()
if quest==answer:
print '恭喜回答正确'
score=score+1
elif quest=='exit':
print '已退出程序'
break
else:
print '很遗憾你做错了,正确答案是'
print answer
print '\n\n'
f.close()
现在有2个问题:
1这么写可以正常运行,但是偶尔会出错就是比如抽到某句应该回答下阙的,程序给的答案反而是上阙,不知道问题在哪。
2 我想在里面加个判断
if h==‘,’:
……
elif h=='。':
……
else
……
但是一改程序就错了
Traceback (most recent call last):
File "C:\Python27\替换3.py", line 19, in <module>
if quest==answer:
NameError: name 'answer' is not defined
能帮我看看问题出在哪好么?
刚才改了下程序,把所有的中文标点换成英文的,貌似就不会错了,怀疑问题是在标点那里。
但是具体是什么原因导致的程序判断错误呢? |
|