複素数の計算 (a+jb+c+jd; a,b,c,d:real) の出力が `1.23-0j` となります。  
`1.23` と出力する方法を教えてください。 # 配列ではありません。
CC BY-SA 4.0
2017-06-18T13:03:44.760
35683
2021-01-27T01:16:01.480
2021-01-27T01:16:01.480
3060
23859
question
python python3
複素数の計算 (a+jb+c+jd; a,b,c,d:real) の出力型式の設定方法
complex class の `repr()` を再定義するか、`z = a+jb+c+jd; z.real if z.imag == 0 else z`
とするなど。

```

    z = 1.23-0j
    #虚数部が0の場合は実数部のみ表示
    print(z.real if z.imag == 0 else z)
    
```

* * *

この投稿は @metropolis
さんの[コメント](https://ja.stackoverflow.com/questions/35683/#comment35465_35683)などを元に編集し、[コミュニティWiki](https://ja.meta.stackoverflow.com/q/1583)として投稿しました。
CC BY-SA 4.0
2021-01-27T01:08:48.983
73594
2021-01-27T01:08:48.983
9820
35683
answer