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

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

img

img

img

img

你要先用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

运行一下贴一下错误结果或者程序报错看看

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632