根据字符串长度动态打印

s_n*_*enu 2 python loops

我是 Python 的新手,并尝试使用 print 和 for 循环来打印如下所示的模式,其中块的宽度取决于我要输入的字符,即块和周围线的宽度随字符串的长度动态增加,例如, ABCDEFGHI .. :

????????????
?  ABCDE   ?
????????????
Run Code Online (Sandbox Code Playgroud)

我正在尝试遍历字符串的字符,例如 -

name = "abcdefghi"

for i in name:
    print("?",end="")

print()

for j in range(1):
    print("?"+" "*(len(name)-1)+"?")

for k in name:
    print("?",end="")
Run Code Online (Sandbox Code Playgroud)

这给了我一个输出,

????????????
?           ?
????????????
Run Code Online (Sandbox Code Playgroud)
  1. 如何使用多个循环来结束行?(这样图案看起来不像一个开放式盒子)
  2. 有什么办法可以启动第二个循环索引 -1 而不是线条???模式?

需要关于尝试什么的建议?

Aso*_*cia 5

'?'您的示例中有类似的字符,因此您在设计逻辑时需要考虑它们:

name = "abcdefghi"
width = len(name) + 4
print('?' + "?"*width + "?")
print('?' + name.center(width) + '?')
print('?' + "?"*width + "?")
Run Code Online (Sandbox Code Playgroud)
???????????????
? abcdefghi ?
???????????????