【发布时间】:2022-12-17 11:36:41
【问题描述】:
【问题讨论】:
-
你应该发布你的代码,而不是你的代码的截图
-
向自己描述你将如何在纸上做到这一点。想想空间。
-
for i in range(len(slovo)-1, -1, -1)会工作。查看range上的文档 -
这回答了你的问题了吗? Print a word diagonally? (closed)
【问题讨论】:
for i in range(len(slovo)-1, -1, -1) 会工作。查看range上的文档
您可以使用range 实现您自己的反向计数器。 zip 用原始字符串,你有你的计数。
>>> text = "ahoj"
>>> for i, c in zip(range(len(text),0,-1), text):
... print(" "*i + c)
...
a
h
o
j
或者,使用 enumerate 获取索引并做一点减法
>>> for i,c in enumerate(text):
... print(" "*(len(text)-i) + c)
...
a
h
o
j
【讨论】:
我有两个解决方案,也许这更具可读性?
slovo = input("Zadaj slovo: ")
max_spaces = len(slovo) - 1
for i, char in enumerate(slovo):
print(" " * (max_spaces - i) + char)
spaces = len(slovo) - 1
for char in slovo:
print(" " * spaces + char)
spaces -= 1
输出:
Zadaj slovo: ahoj
a
h
o
j
a
h
o
j
【讨论】: