如何读取输入文本文件中的每一行并确定每一行是真还是假?

时间:2015-09-06 21:10:10

标签: python python-3.x

所以我们的目标是制作一个布尔(true和false)表达式求值器。我采用的方式是从我正在使用的书中获取所有真实的表达,并将它们列入一个列表。然后从输入文件中我刚刚接过第一行并使用"如果是字符串中的行:"如果输入与列表中的一个字符串完全匹配,请给我。但是我想让它读取文本文件的每一行并告诉我每一行是真还是假并且不知道如何使这项工作,我让它阅读第一行并告诉我它是否是是/否,但我不知道怎么做多行。

到目前为止,这是我的代码:

input_file = open('input.txt', 'r')
output_file = open('output.txt', 'w')
#List expressions that are true
strings = ['T', '( ~ F )','T & T', 'T | T', 'T | F', 'F | T', '~ ( T & F )',
        '~ ( F & T )', '~ ( F & F )', '( T | F ) & ~ ( T & F )' , '( F | T ) & ~ ( F & T )',
       '( T & T ) | ( ~ T )', '( T & T ) | ( ~ F )', '( T & F ) | ( ~ F )', '( F & T ) | ( ~ F )',
       '( F & F ) | ( ~ F )', '~ ( ~ T )', '( ~ F ) & ( ~ F )', '( ~ T ) | ( ~ F )', '( ~ F ) | ( ~ T )',
       '( ~ F ) | ( ~ F )', 'T | ( ~ T )']
#read input// only use the first line// if line == strings then return true if not return false
lines = input_file.readline()
lines = input_file.readline()


def readline(line):
    if lines in strings:
                    return True
    else:
                    return False

if readline(lines) == True:
    output_file.write('True')
    print('Check output.txt.')
else:
    output_file.write('False')
##                          'The expression in BooleanExpression.txt is FALSE or the following:\n'
##                          'You typed it in wrong, or expression was not     defined in the\n'
##                          '"Discrete Mathematics with Applications" book.')
    print('Check output.txt.')
#close files        

input_file.close()
output_file.close()

所以如果我的input.txt看起来像这样:

( ~ F )
( ~ T )
T | T

output.txt应如下所示:

True
False
True

2 个答案:

答案 0 :(得分:2)

您需要将with open('input.txt', 'r') as input_file: for line in input_file: if readline(line) == True: ... 放入循环中。但是文件类型对象支持迭代,因此您可以使用:

dataStore

但是,您可能需要考虑实际解析文本并对其进行评估,以便处理任何布尔表达式。

答案 1 :(得分:0)

因为idk如何在评论中格式化事物,如果那是一件事,那就是我现在拥有的东西。 @achampion

Call