我有很多除法题要解,如果用“/”写的话现在就已经完成了,但来源是学校老师而不是程序员,所以问题看起来像这样:
346÷30=
432÷40=
94÷40=
显然 python 不喜欢除号:
eval(762÷80=) SyntaxError: invalid character in identifier
替换只是愚蠢的:
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() 。
欢迎提出任何建议,即使/特别是如果有其他方法可以解决这个问题。
最佳答案
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)
关于python - 带有传统除号 (÷) 的 eval() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34109817/