回答編集履歴

3

誤字修正など

2020/10/13 04:11

投稿

takutakuya
takutakuya

スコア979

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

2

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

2020/10/13 04:11

投稿

takutakuya
takutakuya

スコア979

test CHANGED
@@ -80,7 +80,7 @@
80
80
 
81
81
  # ++++++++++++
82
82
 
83
- # ++テラテイル++
83
+ # +テラテイル+
84
84
 
85
85
  # ++++++++++++
86
86
 
@@ -90,7 +90,7 @@
90
90
 
91
91
  # ++++++++++++++++
92
92
 
93
- # ++Pythonは楽しい++
93
+ # +Pythonは楽しい+
94
94
 
95
95
  # ++++++++++++++++
96
96
 
@@ -98,6 +98,4 @@
98
98
 
99
99
 
100
100
 
101
- ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が`1:2`ではないフォントも存在するため、その場合は下図のように少しズレてしまいます。
101
+ ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が`1:2`ではないフォントも存在するため、フォント次第で少しズレてしまいます。
102
-
103
- ![イメージ説明](4612f8098c81bb039257625ec80239fe.png)

1

全角文字対応版を追加

2020/10/13 04:06

投稿

takutakuya
takutakuya

スコア979

test CHANGED
@@ -27,3 +27,77 @@
27
27
  # +++++++
28
28
 
29
29
  ```
30
+
31
+
32
+
33
+ ### <追記>全角文字対応版
34
+
35
+ toast-uz さんのご指摘通り、最初のコードは全角文字に対応できていなかったので、全角文字対応版を追加します。ただ、
36
+
37
+ ```Python
38
+
39
+ import unicodedata
40
+
41
+
42
+
43
+ def len_count(text):
44
+
45
+ count = 0
46
+
47
+ for c in text:
48
+
49
+ if unicodedata.east_asian_width(c) in 'FWA':
50
+
51
+ count += 2
52
+
53
+ else:
54
+
55
+ count += 1
56
+
57
+ return count
58
+
59
+
60
+
61
+
62
+
63
+ input_line = input()
64
+
65
+
66
+
67
+ str_len = len_count(input_line)
68
+
69
+
70
+
71
+ print('+' * (str_len + 2))
72
+
73
+ print('+'+input_line+'+')
74
+
75
+ print('+' * (str_len + 2))
76
+
77
+
78
+
79
+ # 出力結果例1
80
+
81
+ # ++++++++++++
82
+
83
+ # ++テラテイル++
84
+
85
+ # ++++++++++++
86
+
87
+
88
+
89
+ # 出力結果例2
90
+
91
+ # ++++++++++++++++
92
+
93
+ # ++Pythonは楽しい++
94
+
95
+ # ++++++++++++++++
96
+
97
+ ```
98
+
99
+
100
+
101
+ ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が`1:2`ではないフォントも存在するため、その場合は下図のように少しズレてしまいます。
102
+
103
+ ![イメージ説明](4612f8098c81bb039257625ec80239fe.png)