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 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 关于大棚监测的pcb板设计
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入