PS:最近接的淘宝单子,有需要的可以自己拿
目录
功能实现条例
1.复数的加减乘除运算
2.复数的虚部和实部的分割提取
效果图展示
源码介绍
1.界面采用QTDesigner构建
2.利用PyUIC转成.py文件
3.因为点击⬅按钮才进行输入,所以给所有的输入框设置状态flag
4.而整个输入的字符串采用str_infor来表示,加减乘除则采用calcu_status来表示状态
加减乘除运算代码
def done(self): global calcu_status if calcu_status == "+": a = self.lineEdit.text() b = self.lineEdit_3.text() res = float(a) + float(b) res = str(res) if res.split('.')[1] == "0": self.lineEdit_5.setText(res.split('.')[0]) else: self.lineEdit_5.setText(res) c = self.lineEdit_2.text() d = self.lineEdit_4.text() res = float(c) + float(d) res = str(res) if res.split('.')[1] == "0": self.lineEdit_6.setText(res.split('.')[0]) else: self.lineEdit_6.setText(res) elif calcu_status == "-": a = self.lineEdit.text() b = self.lineEdit_3.text() res = float(a) - float(b) res = str(res) if res.split('.')[1] == "0": self.lineEdit_5.setText(res.split('.')[0]) else: self.lineEdit_5.setText(res) c = self.lineEdit_2.text() d = self.lineEdit_4.text() res = float(c) - float(d) res = str(res) if res.split('.')[1] == "0": self.lineEdit_6.setText(res.split('.')[0]) else: self.lineEdit_6.setText(res) elif calcu_status == "×": a = float(self.lineEdit.text()) b = float(self.lineEdit_2.text()) c = float(self.lineEdit_3.text()) d = float(self.lineEdit_4.text()) res_1 = str(a*c - b*d) res_2 = str(b*c + a*d) if res_1.split('.')[1] == "0": self.lineEdit_5.setText(res_1.split('.')[0]) else: self.lineEdit_5.setText(res_1) if res_2.split('.')[1] == "0": self.lineEdit_6.setText(res_2.split('.')[0]) else: self.lineEdit_6.setText(res_2) elif calcu_status == '÷': a = float(self.lineEdit.text()) b = float(self.lineEdit_2.text()) c = float(self.lineEdit_3.text()) d = float(self.lineEdit_4.text()) res_1 = str((a * c + b * d) / (c ** 2 + d ** 2)) res_2 = str((b * c - a * d) / (c ** 2 + d ** 2)) if res_1.split('.')[1] == "0": self.lineEdit_5.setText(res_1.split('.')[0]) else: self.lineEdit_5.setText(res_1) if res_2.split('.')[1] == "0": self.lineEdit_6.setText(res_2.split('.')[0]) else: self.lineEdit_6.setText(res_2) else: pass
5.进行删除刚刚输入的字符则是用字符串[:-1]赋值的方法,清空则是赋值“”
6. 分割实部虚部这里不过多介绍,很多种情况,这里直接给出代码
def get(self):
infor = self.lineEdit_7.text()
# 无i
if infor.find('i') ==-1:
if infor.find('-') == -1:
self.lineEdit_8.setText(self.lineEdit_7.text())
self.lineEdit_9.setText('0')
else: #有i
if infor.find('+') != -1:
if infor.split('+')[0].find('i') != -1:
if infor.split('+')[0].split('i')[0] == "":
self.lineEdit_8.setText(infor.split('+')[1])
self.lineEdit_9.setText('1')
else:
if infor.split('+')[0][:-1].find('-') != -1 and len(infor.split('+')[0][:-1]) == 1:
self.lineEdit_8.setText(infor.split('+')[1])
self.lineEdit_9.setText('-1')
else:
self.lineEdit_8.setText(infor.split('+')[1])
self.lineEdit_9.setText(infor.split('+')[0][:-1])
else:
if infor.split('+')[1].split('i')[0] == "":
self.lineEdit_8.setText(infor.split('+')[0])
self.lineEdit_9.setText('1')
else:
self.lineEdit_8.setText(infor.split('+')[0])
self.lineEdit_9.setText(infor.split('+')[1][:-1])
if infor.find('-') != -1:
if infor.count('-') == 1 and infor.find('-') != 0:
if infor.split('-')[0].find('i') != -1:
if infor.split('-')[0].split('i')[0] == "":
self.lineEdit_8.setText(infor.split('i')[1])
self.lineEdit_9.setText('1')
else:
self.lineEdit_8.setText(infor.split('i')[1])
self.lineEdit_9.setText(infor.split('-')[0][:-1])
else:
if infor.split('-')[1].split('i')[0] == "":
self.lineEdit_8.setText(infor.split('-')[0])
self.lineEdit_9.setText('-1')
else:
self.lineEdit_8.setText(infor.split('-')[0])
self.lineEdit_9.setText('-' + infor.split('-')[1][:-1])
elif infor.count('-') == 2:
if infor[-1] == 'i':
x = self.search_n(infor,'-',2)
y = infor.find('i')
if infor[x:y] == "-":
self.lineEdit_8.setText(infor[0:x])
self.lineEdit_9.setText('-1')
else:
self.lineEdit_8.setText(infor[0:x])
self.lineEdit_9.setText(infor[x:y])
else:
self.lineEdit_8.setText(infor.split('i')[1])
if infor.split('i')[0] == "-":
self.lineEdit_9.setText('-1')
else:
self.lineEdit_9.setText(infor.split('i')[0])
获取地址
链接:百度网盘 请输入提取码
提取码:9yho