记录PTA编程练习题7-36 复数四则运算——Python3实现

题目描述:

        本题要求编写程序,计算2个复数的和、差、积、商。

输入格式:

        输入在一行中按照a1 b1 a2 b2的格式给出2个复数C1=a1+b1i和C2=a2+b2i的实部和虚部。题目保证C2不为0。

输出格式:

        分别在4行中按照(a1+b1i) 运算符 (a2+b2i) = 结果的格式顺序输出2个复数的和、差、积、商,数字精确到小数点后1位。如果结果的实部或者虚部为0,则不输出。如果结果为0,则输出0.0。

代码实现:

a1,b1,a2,b2 = map(float,input().split())
a,b = complex(a1,b1),complex(a2,b2)  #转化为复数
r1,i1 = round(a.real,1),round(a.imag,1)
r2,i2 = round(b.real,1),round(b.imag,1)
if i1 >= 0:  #非负数前面应有‘+’号
    i1 = '+' + str(i1)
if i2 >= 0:
    i2 = '+' + str(i2)
def f(c):
    c1,c2 = round(c.real,1),round(c.imag,1)
    if c1 == 0 and c2 == 0:  #实部和虚部都为0
        print("0.0")
    elif c1 == 0:  #只有实部为0
        print(f"{c2}i")
    elif c2 == 0:  #只有虚部为0
        print(c1)
    else:
        if c2>0:  #虚部大于0,其前面应有‘+’号
            print(f"{c1}+{c2}i")
        else:
            print(f"{c1}{c2}i")
print(f"({r1}{i1}i) + ({r2}{i2}i) = ",end='')  #按格式输出
f(a+b)
print(f"({r1}{i1}i) - ({r2}{i2}i) = ",end='')
f(a-b)
print(f"({r1}{i1}i) * ({r2}{i2}i) = ",end='')
f(a*b)
print(f"({r1}{i1}i) / ({r2}{i2}i) = ",end='')
f(a/b)

 

 

你可能感兴趣的:(python)