首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从文本文件中求解简单的数学方程

如何从文本文件中求解简单的数学方程
EN

Stack Overflow用户
提问于 2019-08-22 09:53:23
回答 2查看 1.3K关注 0票数 0

我正试图编写一个程序,从一个txt文件中求解简单的数学方程,并将答案放在一个不同的txt文件中。例如:

qustions.txt:

代码语言:javascript
运行
复制
1+2=
4+7=
10*2=
10/2=

然后答案将在一个不同的txt文件中。

answers.txt:

代码语言:javascript
运行
复制
1+2=3
4+7=11
10*2=20
10/2=5

所以在文本文件中有简单的数学方程,在另一个文件中有答案。数学方程仅为数运算符数。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-22 10:00:22

您可以使用eval计算等号左边的所有内容。

代码语言:javascript
运行
复制
with open('questions.txt') as fp:
    qs = fp.readlines()

answers = [eval(q.split('=')[0]) for q in qs if q.strip()]

with open('answers.txt', 'w') as fp:
    for q, a in zip(qs, answers):
        fp.write(q.strip() + str(a) + '\n')

answers是等号左边求值表达式的列表。eval接受给它的任何字符串,并尝试以命令的形式在Python中运行它。q.split('=')[0]将每个问题分成两部分:等号左边的所有内容(第0部分)和右边的所有内容(第1部分)。我们只抓住了要评估的第一部分。行的其余部分将遍历文件中的问题,并检查以确保该行不只是一个额外的空行。

使用zip将每个问题q与相应的答案a相匹配,因此for循环产生第一个Q和a,然后第二个Q和a等。fp是我们为编写而打开的文件对象。fp.write告诉python将字符串参数写入磁盘。我使用q.strip()删除换行符,将答案作为字符串追加,然后将换行符添加到末尾。

票数 0
EN

Stack Overflow用户

发布于 2019-08-22 12:11:05

我就是这样做的:

代码语言:javascript
运行
复制
with open('questions.txt') as fp:
    qs = fp.readlines() # reading the qustion file
with open('answers.txt', 'w') as fp:# writing the text file by the name fp
    for q in qs:
        Deleteequal = q.split('=')
        a = eval(Deleteequal[0]) # always going to be line 0 because I am reading a line by line
        f = q + str(a)
        f = f.replace("\n", "") # for some reason it printed the numbers really weird if I've just did f.write(q+str(a)+'\n') the result would be 1 line down for some reason
        fp.write(f)
        fp.write('\n')
# str(a) to write the final answer
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57606627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档