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日

悬赏问题

  • ¥20 Windows 驱动开发版本疑问相关
  • ¥15 MAC 未能打开磁盘映像
  • ¥15 fastcap使用,二维导体输入问题
  • ¥15 hosts修改后不能访问
  • ¥15 关于化学反应速率C++编译问题/FLUENT
  • ¥20 Yolov5训练报错
  • ¥15 Unity发布gzip压缩的webgl之后让浏览器可以正常显示画面
  • ¥15 ASP.net Gridview插件数据更新失败问题
  • ¥15 有没有人知道这种提示怎么关?现在不做ts项目了不知道咋关了,求解,现在我以前的js项目都是这种提示了
  • ¥15 为什么mysql做了碎片化处理data_free还是很高