猫史档案馆


【Python作品分享】万能运算【作品秀】

用户:\相逢何必曾相识/\相逢何必曾相识/查看:0 回复:0 评论:0 创建时间:2020-03-02T17:15:30


【作品展示】

center_image

 

【作品介绍】

用Python(类)写的一款运算代码,可以进行连加、连减、连乘、连除、综合运算和根号运算

 

【作品源代码】

import time
import math

print('欢迎来到万能运算,本运算暂只支持加减乘除、根号和无括号的综合运算\n')
print('---------------分割线---------------\n')
time.sleep(0.5)

class Sqrt:
    def __init__(self,d,s,q=0):
        a=d
        if s==1:
            print('\n',a,'的平方根是正负',math.sqrt(d),'\n')
        elif s==2:
            for i in range(2):
                d=math.sqrt(d)
            print('\n',a,'的立方根是',d,'\n')
        else:
            for i in range(q):
                if i>=1:
                    d=math.sqrt(d)
            print('\n',a,'的',q,'次根号是',d,'\n')
            
class More:
    def __init__(self,userl,number,string):
        print('运算结果:',end=' ')
        for i in userl:
            print(i,end=' ')
        for c in number:
            if string[0]=='+':
                if string[1]!='*' and string[1]!='/':
                    number[0]=number[0]+number[1]
                    del number[1]
                    del string[0]
                else:
                    if string[1]=='*':
                        number[1]=number[1]*number[2]
                        del number[2]
                        del string[1]
                    elif string[1]=='/':
                        number[1]=number[1]/number[2]
                        del number[2]
                        del string[1]
            elif string[0]=='-':
                if string[1]!='*' and string[1]!='/':
                    number[0]=number[0]-number[1]
                    del number[1]
                    del string[0]
                else:
                    if string[1]=='*':
                        number[1]=number[1]*number[2]
                        del number[2]
                        del string[1]
                    elif string[1]=='/':
                        number[1]=number[1]/number[2]
                        del number[2]
                        del string[1]
            elif string[0]=='*':
                number[0]=number[0]*number[1]
                del number[1]
                del string[0]
            elif string[0]=='/':
                number[0]=number[0]/number[1]
                del number[1]
                del string[0]
        print(str(number[0]),'\n')
        
class Computer:
    def ask(self):
        while True:
            a = input('请输入您想进行的运算:1.加法;2.减法;3.乘法;4.除法;5.根号运算;6.综合运算;7.退出本系统:')
            try:
                if int(a)==1:
                    user.plus()
                elif int(a)==2:
                    user.minus()
                elif int(a)==3:
                    user.asterisk()
                elif int(a)==4:
                    user.slash()
                elif int(a)==5:
                    user.sqrt()
                elif int(a)==6:
                    user.more()
                elif int(a)==7:
                    print('感谢您的使用!')
                    break
                else:
                    print('\n请输入有效数字!\n')
            except ValueError:
                print('\n请输入有效数字!\n')

    def plus(self):
        plus = []
        plus_anwser= 0
        plus_question = int(input('\n请问有几个加数:'))
        for i in range(plus_question):
            plus_number = float(input('请输入第' + str(i + 1) + '个加数:'))
            plus.append(plus_number)
        for j in plus:
            plus_anwser = (plus_anwser + j)
        print('\n电脑神速地算完了!答案是:{}!\t\n'.format(plus_anwser))

    def minus(self):
        minus= []
        minus_anwser= 0
        minus_num=int(input('\n请问被减数是多少:'))
        minus_question = int(input('\n请问有几个减数:'))
        for i in range(minus_question):
            minus_number = float(input('请输入第' + str(i + 1) + '个减数:'))
            minus.append(minus_number)
        for j in minus:
            minus_num = (minus_num - j)
            minus_anwser=minus_num
        print('\n电脑神速地算完了!答案是:{}!\t\n'.format(minus_anwser))

    def asterisk(self):
        asterisk = []
        asterisk_question = int(input('\n请问有几个因数:'))
        for i in range(asterisk_question):
            asterisk_number = float(input('请输入第' + str(i + 1)+ '个因数:'))
            asterisk.append(asterisk_number)
        asterisk_anwser=asterisk[0]
        for j in asterisk:
            asterisk_anwser=asterisk_anwser*j
        print('\n电脑神速地算完了!答案是:{}!\t\n'.format(asterisk_anwser/asterisk[0]))
        asterisk_time=0
        
    def slash(self):
        slash= []
        slash_anwser= 0
        slash_num=int(input('\n请问被除数是多少:'))
        slash_question = int(input('\n请问有几个除数:'))
        for i in range(slash_question):
            slash_number = float(input('请输入第' + str(i + 1) + '个除数:'))
            slash.append(slash_number)
        for j in slash:
            slash_num = (slash_num / j)
        slash_anwser=slash_num
        print('\n电脑神速地算完了!答案是:{}!\t\n'.format(slash_anwser))
        
    def sqrt(self):
        s=int(input('请输入您想进行的运算:1.平方根;2.立方根;3.自定义根号:'))
        d=int(input('请输入数字:'))
        if s==3:
            q=int(input('请输入次幂:'))
            qrt=Sqrt(d,s,q)
        elif s==2:
            qrt=Sqrt(d,s)
        elif s==1:
            qrt=Sqrt(d,s)
            
    def more(self):
        morl=[]
        Number=[]
        String=[]
        number=0
        string=''
        n=0
        while string!='=':
            n+=1
            number=float(input('请输入第{}个数字(必须是数字,不能有符号!):'.format(n)))
            string=input('请输入第{}个符号(必须是符号,不能有数字!*号代表乘法,/号代表除法):'.format(n))
            Number.append(number)
            String.append(string)
            morl.append(number)
            morl.append(string)
        m=More(morl,Number,String)
            
user=Computer()
user.ask()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页