为了账号安全,请及时绑定邮箱和手机立即绑定

希望实现一个简易计算器,但是代码报错了?该怎么解决?

希望实现一个简易计算器,但是代码报错了?该怎么解决?

FFIVE 2022-04-21 13:15:21
代码如下:from __future__ import divisionx=1y=1z="/"result={"+":x+y,"-":x-y,"*":x*y,"/":x/y}x=raw_input("输入第一个数字:\n")z=raw_input("输入运算符:\n")y=raw_input("输入第二个数字:\n")print result.get(z)(x,y)运算符输入 + 会报错TypeError: 'int' object is not callable运算符输入 "+" 会报错TypeError: 'NoneType' object is not callable是哪一段出了什么问题?
查看完整描述

2 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

# coding: utf-8 from __future__ import division result = {    '+'lambda x, y: x + y,    '-'lambda x, y: x - y,    '*'lambda x, y: x * y,    '/'lambda x, y: x / y,}= raw_input("输入第一个数字: ")= raw_input("输入运算符: ")= raw_input("输入第二个数字: ")print "=", result.get(z)(int(x), int(y))

查看完整回答
反对 回复 2022-04-24
?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

result.get(z)返回的是一个整数呀!
正确的完整的程序如下:
result={"+":'x+y',"-":'x-y',"*":'x*y',"/":'x/y'}
x=float(input("输入第一个数字:\n"))
z=input("输入运算符:\n")
y=float(input("输入第二个数字:\n"))
print( eval( result.get(z)) ) #(x,y)

查看完整回答
反对 回复 2022-04-24
  • 2 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号