m0_64589193 2022-04-12 12:59 采纳率: 100%
浏览 44
已结题

计算器的代码乘方结果出错了

根据题目写的,但是不知道出什么问题了导致乘方的答案出错,我的想法很简单,利用if语句。计算结果是对的但是有一句话,它不应该出现的。

img

img

img

img

  • 写回答

4条回答 默认 最新

  • 关注

    你要先用if需要两个操作数还是需要一个操作数,再在不同的分支中用eval(input())输入
    你题目的解答代码如下:

    print('简单计算器')
    while True:
        ch = input('请选择输入1+,2-,3*,4/,5**2,6%,7//\t输入0退出')
        if ch=='0':
            print('Bye!')
            break
        if ch not in ["1","2","3","4","5","6","7","+","-","*","/","**2","%","//"]:
            print('输入错误,请选择输入1+,2-,3*,4/,5**2,6%,7//')
        else:
            if ch!="5" and ch!="**2":
                n1,n2 = eval(input('请输入两个操作数,并用逗号分隔:'))
                if ch=="1" or ch=="+":
                    print('{}+{}={:<16.4f}'.format(n1,n2,n1+n2))
                elif ch=="2" or ch=="-":
                    print('{}-{}={:<16.4f}'.format(n1,n2,n1-n2))
                elif ch=="3" or ch=="*":
                    print('{}*{}={:<16.4f}'.format(n1,n2,n1*n2))
                elif n2==0:
                    print('除数不能是0!')
                elif ch=="4" or ch=="/":
                    print('{}/{}={:<16.4f}'.format(n1,n2,n1/n2))
                elif ch=="6" or ch=="%":
                    print('{}%{}={:<16.4f}'.format(n1,n2,n1%n2))
                elif ch=="7" or ch=="//":
                    print('{}//{}={:<16.4f}'.format(n1,n2,n1//n2))
            else:
                n3 = eval(input('请输入一个操作数:'))
                print('{}**2={:<16.4f}'.format(n3,n3**2))
    

    img

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 修改了问题 4月12日
  • 创建了问题 4月12日

悬赏问题

  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记