これでどうでしょうか?
Python
1input_line = input()
2
3str_len = len(input_line)
4
5print('+' * (str_len + 2))
6print('+'+input_line+'+')
7print('+' * (str_len + 2))
8
9# 出力結果例
10# +++++++
11# +arist+
12# +++++++
<追記>全角文字対応版
toast-uz さんのご指摘通り、最初のコードは全角文字に対応できていなかったので、全角文字対応版を追加します。ただ、
Python
1import unicodedata
2
3def len_count(text):
4 count = 0
5 for c in text:
6 if unicodedata.east_asian_width(c) in 'FWA':
7 count += 2
8 else:
9 count += 1
10 return count
11
12
13input_line = input()
14
15str_len = len_count(input_line)
16
17print('+' * (str_len + 2))
18print('+'+input_line+'+')
19print('+' * (str_len + 2))
20
21# 出力結果例1
22# ++++++++++++
23# +テラテイル+
24# ++++++++++++
25
26# 出力結果例2
27# ++++++++++++++++
28# +Pythonは楽しい+
29# ++++++++++++++++
ただ、フォントによっては等幅フォントでも半角と全角文字の幅の比率が1:2ではないフォントも存在するため、フォント次第で少しズレてしまいます。(上記コードの中の出力例も少しズレています)
全角文字の数で囲う文字の上下の数を調整したほうがよいかもしれません。
2020/10/12 22:45
2020/10/13 04:13
2020/10/13 04:28