在下面的代码中,我没有得到想要的结果:
#!/bin/python3
import math
import os
import random
import re
import sys
class comp:
def __init__(self,real,img):
self.real=real
self.img=img
def add(self,p2):
r= p1.real+p2.real
i= p1.img+p2.img
print("Sum of the two Complex numbers :"+str(r)+'+'+str(i)+'i')
def sub(self,p2):
r= p1.real-p2.real
i= p1.img-p2.img
print("Subtraction of the two Complex numbers :"+str(r)+'+'+str(i)+'i')
if __name__ == '__main__':
real1 = int(input().strip())
img1 = int(input().strip())
real2 = int(input().strip())
img2 = int(input().strip())
p1 = comp(real1,img1)
p2 = comp(real2,img2)
p1.add(p2)
p1.sub(p2)
该代码有效,但当虚域的结果为-2时,它将结果打印为+-2i
结果例如:1+2i-3+4i=-2i-(但由于注释中硬编码为"+",因此导致"-2+-2i">
我怎样才能摆脱它?
您可以使用条件打印-既可以使用if
子句,也可以使用内联三元表达式:
r = 5
for i in (-2,0,2):
print(f"Subtraction : {r}{'+' if i >= 0 else ''}{i}i")
输出:
Subtraction : 5-2i
Subtraction : 5+0i
Subtraction : 5+2i
不过,你可能想制作一个打印功能,以更优雅地处理0*i和1*i