不太确定这个问题是否重复,但在搜索了一段时间后似乎不是。
假设我在文本文件中有这些文本行。
Q5) What is 1+1
A) = 1
B) = *2
C) = 0
D) = -342
E) = 121
正确答案 B) = *2 在横线上写有 * 标记。你将如何打印这一行,但没有字符,所以该行将像这样打印:
Q5) What is 1+1
A) = 1
B) = 2
C) = 0
D) = -342
E) = 121
我对 Python 还是个新手,但我明白:
print lines[3]
将打印特定行。但是我想知道如何打印没有特定字符的行。
任何关于编码的帮助和解释,将不胜感激。谢谢大家。
请您参考如下方法:
编辑: 鉴于此输入:
Q1) What is 1*1?
A) = 0
B) = *1
C) = 2
D) = -1
Q2) What is 1-1?
A) = *0
B) = 1
C) = 2
D) = -1
Q3) What is 1/1?
A) = 0
B) = *1
C) = 2
D) = -1
Q4) What is 1%1?
A) = *0
B) = 1
C) = 2
D) = -1
Q5) What is 1+1?
A) = 1
B) = *2
C) = 0
D) = -342
E) = 121
有很多方法可以解决这个问题。这些是我的第一个想法:
import re
def ask_user(answer):
user_ans = raw_input("> ").strip()
if user_ans == answer:
print "Correct!\n"
result = True
else:
print "Wrong!\n"
result = False
return result
question = None
with open('test.txt') as test:
for line in test:
if line[0] == 'Q':
if question:
ask_user(answer)
question = line
else:
m = re.match(r'(.*?)\*(\d+)', line)
if m:
line, answer = m.groups()
line = "%s%s\n" % (line,answer)
print line,
# Final question
ask_user(answer)
