python - 带有传统除号 (÷) 的 eval() 问题

标签 python replace eval division

我有很多除法题要解,如果用“/”写的话现在就已经完成了,但来源是学校老师而不是程序员,所以问题看起来像这样:

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/

相关文章:

python - 如何为控制台安装 NodeBox

在 Vim 中使用快速修复列表进行搜索和替换

excel - 在 PowerPoint 中查找文本并替换为 Excel 单元格中的文本

lisp - 在评估中进行小的修正来扩展 Lisp 的最简单方法是什么?

php - 这样使用 eval 安全吗?

python - 通过 NumPy 函数修改 Pandas 数据框

python - 导入错误 : No module named pillow

java - 在消息中发送一段代码

PHP preg_replace 替换中的任何文本

python - Python中exec和eval的使用