python - 如何输入公式并得到结果?
问题描述
我要做的是输入一个公式,比如 1+1,然后打印:问题 n 的答案是:(公式的答案)。对于 1+1,它应该打印:问题 1 的答案是:2 但是我得到的是,当我输入 1+1 时,它会打印:问题 1 的答案是:'1+1'
def prefix():
typein=int(input("How many questions do you want to ask:"))
number=1
while number<typein+1:
a=input("Question %r you want to ask"%(number))
print(a)
print("The Answer of Question %r is: %r" %(number,a))
number+=1
prefix()
当我添加
print(a)
后
a=input("Question %r you want to ask"%(number))
它表明a是1 + 1,而不是2。那么我怎样才能让a成为公式的答案而不是公式本身呢?
- - - - - - - - - - - - - 编辑 - - - - - - - - - - - -
它要求人们输入一个 int 和一些公式。我们为代码的第一部分输入一个 int 是没有问题的。但是对于代码的第二部分,它要求输入公式,它就出错了。
解决方案
感谢答案。我知道现在发生了什么,就像问题一样: 评估字符串中的数学表达式
所以我只需要添加一个 eval()
def prefix():
typein=int(input("How many questions do you want to ask:"))
number=1
while number<typein+1:
a=eval(input("Question %r you want to ask"%(number)))
print("The Answer of Question %r is: %r" %(number,a))
number+=1
prefix()
推荐阅读
- cakephp - CakePHP 3 防止保存冗余数据
- mysql - 复制表时,从原始表中镜像已删除记录的最佳方法是什么?
- java - Jayway JsonPath 读取长 Java
- matlab - 将相同的矩阵列放入matlab中的单元格
- azure - 是否可以在不重定向到 Microsoft 登录站点的情况下注册/登录 Azure AD B2C?
- javascript - 向socket.io中的特定用户发送警报后如何读取服务器中的响应?
- vue.js - 如何在 vue.js 中添加 vue-style-loader 依赖项
- sql - 拆分“|” 分隔值字段并与另一个表连接
- angular - page-router-outlet 使用 Nativescript 导航
- mysql - SQL 命令在为消息创建数据库时仅获取最近的输入