質問するログイン新規登録

回答編集履歴

3

誤字修正など

2020/10/13 04:11

投稿

takutakuya
takutakuya

スコア979

answer CHANGED
@@ -48,4 +48,5 @@
48
48
  # ++++++++++++++++
49
49
  ```
50
50
 
51
- ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が`1:2`ではないフォントも存在するため、フォント次第で少しズレてしまいます。
51
+ ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が`1:2`ではないフォントも存在するため、フォント次第で少しズレてしまいます。(上記コードの中の出力例も少しズレています)
52
+ 全角文字の数で囲う文字の上下の数を調整したほうがよいかもしれません。

2

出力例が間違っていたので修正

2020/10/13 04:11

投稿

takutakuya
takutakuya

スコア979

answer CHANGED
@@ -39,14 +39,13 @@
39
39
 
40
40
  # 出力結果例1
41
41
  # ++++++++++++
42
- # ++テラテイル++
42
+ # +テラテイル+
43
43
  # ++++++++++++
44
44
 
45
45
  # 出力結果例2
46
46
  # ++++++++++++++++
47
- # ++Pythonは楽しい++
47
+ # +Pythonは楽しい+
48
48
  # ++++++++++++++++
49
49
  ```
50
50
 
51
- ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が`1:2`ではないフォントも存在するため、その場合は下図のように少しズレてしまいます。
51
+ ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が`1:2`ではないフォントも存在するため、フォント次第で少しズレてしまいます。
52
- ![イメージ説明](4612f8098c81bb039257625ec80239fe.png)

1

全角文字対応版を追加

2020/10/13 04:06

投稿

takutakuya
takutakuya

スコア979

answer CHANGED
@@ -12,4 +12,41 @@
12
12
  # +++++++
13
13
  # +arist+
14
14
  # +++++++
15
- ```
15
+ ```
16
+
17
+ ### <追記>全角文字対応版
18
+ toast-uz さんのご指摘通り、最初のコードは全角文字に対応できていなかったので、全角文字対応版を追加します。ただ、
19
+ ```Python
20
+ import unicodedata
21
+
22
+ def len_count(text):
23
+ count = 0
24
+ for c in text:
25
+ if unicodedata.east_asian_width(c) in 'FWA':
26
+ count += 2
27
+ else:
28
+ count += 1
29
+ return count
30
+
31
+
32
+ input_line = input()
33
+
34
+ str_len = len_count(input_line)
35
+
36
+ print('+' * (str_len + 2))
37
+ print('+'+input_line+'+')
38
+ print('+' * (str_len + 2))
39
+
40
+ # 出力結果例1
41
+ # ++++++++++++
42
+ # ++テラテイル++
43
+ # ++++++++++++
44
+
45
+ # 出力結果例2
46
+ # ++++++++++++++++
47
+ # ++Pythonは楽しい++
48
+ # ++++++++++++++++
49
+ ```
50
+
51
+ ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が`1:2`ではないフォントも存在するため、その場合は下図のように少しズレてしまいます。
52
+ ![イメージ説明](4612f8098c81bb039257625ec80239fe.png)