首先,让我解释一下我正在尝试做的事情。
我想使用列表中的字符串打印四边形(正方形)。像这样:
John
o h
h o
nhoJ
我得到了我想要的打印结果,除了我的 for 循环打印的内容超出了需要。我只需要根据实际字符串的长度跳过一些循环迭代。
这是我需要帮助的地方,这是在“quad_text”函数中:
for i in norm_list[1:-1]:
for j in reve_list[1:-1]:
print(f"{i}{spaces}{j}")
我现在输出的结果:
---
John
o h
o o
h h
h o
nhoJ
---
Joe
o o
eoJ
---
David
a i
a v
a a
v i
v v
v a
i i
i v
i a
divaD
完整代码
#Global Variables"
normal_list = ["John", "Joe", "David"]
#normal_list = ["Hey there buddy!"]
def initialization():
rev_list = string_reverser()
combined_lists = zip(normal_list, rev_list)
quad_text(list(combined_lists))
def string_reverser():
reversed_list = []
for i in normal_list:
reversed_list.append(i[::-1])
return(reversed_list)
def quad_text(combined_lists):
for (norm_list, reve_list) in combined_lists:
print("---")
print(norm_list)
text_len = len(norm_list)
spaces = (text_len - 2) *(" ")
for i in norm_list[1:-1]:
for j in reve_list[1:-1]: # <--- Problem Area
print(f"{i}{spaces}{j}")
print(reve_list)
initialization()