質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

1511閲覧

python でfor文を二重で使って綺麗に表を出力する方法を教えてください。

guppi65513461

総合スコア13

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/06/12 19:26

前提・実現したいこと

unicode対応表の出力
ここに質問の内容を詳しく書いてください。
学校の課題でpythonを用いてunicode対応表を作っているのですが、文字の大きさがバラバラのため
綺麗に表として出力されません

発生している問題・エラーメッセージ

幅がバラバラでうまく対応した表が作れない

該当のソースコード

python

1ソースコード

試したこと

ここに問題に対して試したことを記載してください。
" "を加えたり、end=" "を用いて余白を作ろうとしました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

python

1from unicodedata import east_asian_width 2wlen = lambda s: len([c for c in s if east_asian_width(c) in 'FWA']) 3width = 10 4ljust = lambda s, *args: s.ljust(width - wlen(s), *args) 5rjust = lambda s, *args: s.rjust(width - wlen(s), *args) 6 7lst = [list('abc'), list('あいう')] 8txt = '\n'.join([' '.join(map(ljust, row)) for row in lst]) 9print(txt)

https://wandbox.org/permlink/PEKMmjAAeFkS40R5

https://qiita.com/delicious-locomoco/items/1adfe3ede4247b72759d

投稿2018/06/12 22:32

mkgrei

総合スコア8560

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guppi65513461

2018/06/16 10:57

ご回答ありがとうございます まだ知らないモジュールや文法が多いですが一つ一つ考えてみます!
guest

0

参考情報

  • pythonで文字列の見た目幅の長さを調べる

https://qiita.com/suzuki-hoge/items/1c86ac6af36f4f613cef

  • 文字列の幅を算出する

https://qiita.com/QUANON/items/c46b95216683c431692a

  • 全角文字の文字幅を取得する

https://ymotongpoo.hatenablog.com/entry/20120511/1336706463

  • Python, formatで書式変換(0埋め、指数表記、16進数など)

https://note.nkmk.me/python-format-zero-hex/

投稿2018/06/12 22:24

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guppi65513461

2018/06/16 10:57

ご回答ありがとうございます 参考になることが多くこれからもそのつと参照させていただきます
guest

0

ベストアンサー

タブを利用されてはいかがですか。

Python

1lst = [list('abc'), list('あいう')] 2for row in lst: 3 for elem in row: 4 print(elem, end='\t') 5 print()

実行結果 Wandbox

投稿2018/06/12 19:48

編集2018/06/12 19:51
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guppi65513461

2018/06/16 10:58

ご回答ありがとうございました。 なんとかできました!
guest

0

そもそも等幅フォント使っていますか? という根本的な話が。
うっかりwordにCentury+MS明朝のまま貼ったりすると崩れますよ。さすがにターミナルのフォントは等幅だと思いますけど、

投稿2018/06/13 05:16

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問