我是一名python初学者,想通过学习的内容编制一个简易计算器,能够通过面向对象方式实现简易的运算,建立了两个类及方法,但是不知道怎么衔接并继续正常运行,请大神指点迷津,是我思路错误了,还是语句错误,万分感谢。
class Number:
def __init__ (self,num1,symbol,num2):
self.num1 = num1
self.symbol = symbol
self.num1 = num1
def calculator(self):
if self.symbol == 'X':
res = float(self.num1 * self.num2)
return'%d %s %d=%s'%(self.num1,self.symbol,self.num2,res)
elif self.symbol =='':
res = float(self.num1 / self.num2)
return'%d %s %d=%s'%(self.num1,self.symbol,self.num2,res)
elif self.symbol == '+':
res = float(self.num1 + self.num2)
return'%d %s %d=%s'%(self.num1,self.symbol,self.num2,res)
elif self.symbol == '-':
res = float(self.num1 - self.num2)
return'%d %s %d=%s'%(self.num1,self.symbol,self.num2,res)
else:
print('您输入的符号不正确')
return self.add_number
class Welcome(Number):
def __init__(self):
Number.__init__(self,new_num1,new_symbol,new_num2)
new_num1 = self.new_num1
new_symbol = self.new_symbol
new_num2 = self.new_num2
return
def yingdao(self):
print('\n欢迎您使用***设计的简易计算器,在这儿可以计算简易的加减乘除运算')
while True:
print('现在你可以按照顺序输入')
return self.add_number()
def add_number(self):
new_num1 = input('\n请先输入第一个数:')
new_symbol = input('请输入这几个运算符中的一个(+、-、X、):')
new_num2 = input('请输入第二个数:')
return Number.calculator(self)
test = Welcome()
test.yingdao()
上面的代码问题很多
def __init__ (self,num1,symbol,num2):
self.num1 = num1
self.symbol = symbol
self.num1 = num1 //应该是self.num2=num2
def __init__(self):
Number.__init__(self,new_num1,new_symbol,new_num2)
new_num1 = self.new_num1
new_symbol = self.new_symbol
new_num2 = self.new_num2
return
可以改为
def __init__(self):
super().__init__(new_num1,new_symbol,new_num2)
return
其实对于这个程序,根本不需要继承(没有理解继承的含义和使用场景)。只不过是提示用户输入,弄得过于复杂
供参考:
class Calculator:
def __init__ (self,num1,symbol,num2):
self.num1 = num1
self.symbol = symbol
self.num2 = num2
def calculate(self):
if self.symbol == '*':
res = float(self.num1 * self.num2)
elif self.symbol =='/':
res = float(self.num1 / self.num2)
elif self.symbol == '+':
res = float(self.num1 + self.num2)
elif self.symbol == '-':
res = float(self.num1 - self.num2)
else:
print('不能识别的运算符')
return None
print('%d %s %d=%s' % (self.num1, self.symbol, self.num2, res))
return res
print('欢迎您使用***设计的简易计算器,在这儿可以计算简易的加减乘除运算')
num1 = input('\n请先输入第一个数:')
symbol = input('请输入这几个运算符中的一个(+、-、*、/):')
num2 = input('请输入第二个数:')
test = Calculator(int(num1),symbol,int(num2))
test.calculate()