python3中提供復數(shù)類型[1]隐圾,其創(chuàng)建可通過complex([real[, imag]])
掰茶,當兩者都缺省時,返回0j
盐碱。該類型[2]可處理+
沪伙、_
瓮顽、*
围橡、/
四種運算;若c
為復數(shù)類型拣播,則c.real
表示實部黔漂,c.imag
表示虛部,還可以通過c.conjugate()
求其共軛復數(shù)炬守。
至于為啥python3中復數(shù)中用表示而不是『ㄔ澹可以參考這份介紹[3]鳍置。
以下是編程題。本題如果通過自己編程實現(xiàn)題干中的四舍五入并不可行税产,反而通過控制float
類型輸出格式便可偷崩。極其感謝此文[4]作者撞羽。
# PAT中的基礎(chǔ)編程題目集函數(shù)題7-36
def printPatOfRes(pattern, real, image, a1, b1, a2, b2): # 用于輸出
if image <= 0.05 and image >=-0.05:
pattern += '%.1f'
print(pattern %(a1, b1, a2, b2, real))
elif real <= 0.05 and real >= -0.05:
pattern += '%.1fi'
print(pattern %(a1, b1, a2, b2, image))
elif image < 0 :
pattern += '%.1f%.1fi'
print(pattern %(a1, b1, a2, b2, real, image) )
else :
pattern += '%.1f+%.1fi'
print(pattern %(a1, b1, a2, b2, real, image) )
def printPatOfInput(real, image): # 得到輸入數(shù)據(jù)的輸出格式
if image < 0:
return '(%.1f%.1fi)'
else :
return '(%.1f+%.1fi)'
a1, b1, a2, b2 = input().split()
a1 = float(a1); b1 = float(b1); a2 = float(a2); b2 = float(b2)
tmp = complex(a1, b1) + complex(a2, b2)
printPatOfRes(printPatOfInput(a1, b1) + ' + ' + printPatOfInput(a2, b2) + ' = ', tmp.real, tmp.imag, a1, b1, a2, b2)
tmp = complex(a1, b1) - complex(a2, b2)
printPatOfRes(printPatOfInput(a1, b1) + ' - ' + printPatOfInput(a2, b2) + ' = ', tmp.real, tmp.imag, a1, b1, a2, b2)
tmp = complex(a1, b1) * complex(a2, b2)
printPatOfRes(printPatOfInput(a1, b1) + ' * ' + printPatOfInput(a2, b2) + ' = ', tmp.real, tmp.imag, a1, b1, a2, b2)
tmp = complex(a1, b1) / complex(a2, b2)
printPatOfRes(printPatOfInput(a1, b1) + ' / ' + printPatOfInput(a2, b2) + ' = ', tmp.real, tmp.imag, a1, b1, a2, b2)