Skip to main content
 首页 » 编程设计

python之如何从没有特定字符的文本文件中打印一行

2025年05月04日16lonelyxmas

不太确定这个问题是否重复,但在搜索了一段时间后似乎不是。

假设我在文本文件中有这些文本行。

    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)