python多分支实现四则运算器代码_用Python实现小学生四则运算

本文介绍了使用Python实现一个能够进行四则运算的程序,包括比较大小、加法、减法、乘法和求余运算。代码在Python3.7环境下编写,并提供了具体的类和方法实现,例如Compare用于比较大小,Add用于加法运算,Minus用于减法,SigleMultiple用于单次乘法,Multiple用于多次乘法,Recount和SingleRecount用于求解线性方程。通过实例展示了代码运行结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、需求分析

根据小学学的四则元算法则,对输入的字符串实现比较大小,加法,减法,乘法,除法和求余等运算。

二、实现环境

本程序是在Python3.7、pycharm下实现

二、代码

class StringArithmetic:

# 输入的x,y皆为非负

# 比较大小 x>y retuen 1,x==y return 0, x

def Compare(self,x,y):

m=len(x)

n=len(y)

if m>n:

return 1

if m

return -1

for i in range(m):

if x[i]>y[i]:

return 1

if x[i]

return -1

return 0

#加法运算

def Add(self,x,y):

result=''

rise=0

maxlen=max(len(x),len(y))

x=x.zfill(maxlen)

y=y.zfill(maxlen)

for i in range(1,maxlen+1):

temp=int(x[-i])+int(y[-i])+rise

if temp>9:

rise=1

temp=temp-10

else:

rise=0

result+=str(temp)

if rise>0:

result+=str(rise)

return result[::-1]

# 减法运算 x>=y, resurn x-y

def Minus(self,x,y):

result=''

own=0

for i in range(1,len(y)+1):

first=int(x[-i])-own

second=int(y[-i])

if first

own=1

first+=10

else:

own=0

result+=str(first-second)

result=result.rstrip('0')

if result=='':

result='0'

return result[::-1]

# Condition: return k times of x, limit k to stop temp over limit

def SigleMultiple(self,k,x):

result=''

rise=0

k=int(k)

for i in range(1,len(x)+1):

temp=int(x[-i])*k+rise

result+=str(temp%10)

rise=temp//10

result=result[::-1]

if rise>0:

result=str(rise)+result

return result

# return x*y

def Multiple(self,x,y):

if len(x)

x,y=y,x

result='0'

zright=''

for i in range(1,len(y)+1):

temp=self.SigleMultiple(y[-i],x)+zright

result=self.Add(result,temp)

zright+='0'

return result

# x=ky+b, return k+' '+b

def Recount(self,x,y):

m=len(x)

n=len(y)

s=n-1

k=''

b=x[0:s]

for i in range(s,m):

b+=x[i]

temp=self.SingleRecount(b,y)

k+=temp[0]

b=temp[1]

if len(k)==0:

k='0'

return k,b

# x=ky+b, return k,b by loop. faster for k is smaller

def SingleRecount(self,x,y):

k=0

while True:

temp=self.SigleMultiple(k,y)

i=self.Compare(x,temp)

if i==1:

k+=1

continue

if i==0:

return str(k),'0'

if i==-1:

break

temp=self.Minus(x,self.SigleMultiple(k-1,y))

return str(k-1),temp

s=StringArithmetic()

x='15'

y='15'

result=s.SigleMultiple(x,y)

result1=s.Add(x,y)

print(result)

print(result1)

result2=s.SingleRecount(x,y)

print(result2)

result3=s.Minus(x,y)

print(result3)

三、程序结果

四、PSP表格

由于本人刚学Python不久,有参考大家的程序代码,在此声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值