在下面的代码中,我没有得到2-2i所需的结果.结果为-2+-2i



在下面的代码中,我没有得到想要的结果:

#!/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

最新更新