eval()问题与传统的分裂符号(÷)

时间:2015-12-05 19:24:45

标签: python replace eval division

我有很多分组问题需要解决,如果它们是用“/”编写的话,现在已经完成了,但是源代码是学校老师而不是程序员,所以问题看起来像这样:

  

346÷30 =

     

432÷40 =

     

94÷40 =

显然python不喜欢分隔符号:

  

eval(762÷80 =)SyntaxError:标识符

中的无效字符

并且替换只是愚蠢:

text_file = open("...questions.txt", "r")
lines = text_file.read().split('\n')
for line in range(len(lines)):
    lines[line].replace(u"\u00F7", "/")
    print(lines[line])

我最初尝试使用符号:

text_file = open("...questions.txt", "r")
lines = text_file.read().split('\n')
for line in range(len(lines)):
    lines[line].replace("÷", "/")
    print(lines[line])

但无论哪种结果都是

346÷30=
432÷40=
94÷40=

我真的不知道还有什么可以尝试,我不想全部手动替换除法符号,以便我可以像往常一样运行eval()。

任何建议,欢迎,甚至/特别是如果有另一种解决这个问题的方法。

1 个答案:

答案 0 :(得分:2)

replace返回新字符串,因此您必须指定它:

lines[line] = lines[line].replace("\u00F7", "/")

当你在这里时,你可以大量清理你的代码;打开文件时使用with语句,只需遍历文件以获取行:

with open("...questions.txt", "r") as text_file:
    for line in text_file:
        line = line.replace("÷", "/")
        print(line)