我试图编写一个代码,让一个短语垂直打印,然后需要将其打印出来。我让用户输入一个字符串,但我需要输出以空格查看某种方式。我已经编写了一些代码:
def main():
#have user input phrase
phrase = input("Enter a phrase: ")
print() # turnin
print() #blank line
print("Original phrase:",phrase)
print() # blank line
word_l = phrase.split()
word_a = len(word_l)
max_len = 6
for i in range(word_a):
length = len(word_l[i])
if length < max_len:
print(len(word_l[i]) * " ",end="")
我需要在下一部分中互相拥有2个循环,但我不相信上面的循环和if语句是正确的。所以说用户输入短语:Phil喜欢编码。我需要输出看起来像:
P l t c
h i o o
i i d
l k e
e
s
单词之间的空格是空格,好像字母在那里包括一个空格。我不能使用任何导入,我可以使用的唯一功能是拆分。我需要一个带有if语句的for循环,然后我需要另一个for循环,其中包含for循环。真的很感激任何帮助。
答案 0 :(得分:5)
更简单的方法是使用zip_longest
itertools
import itertools
txt = "some random text"
l = txt.split(' ')
for i in itertools.zip_longest(*l, fillvalue=" "):
if any(j != " " for j in i):
print(" ".join(i))
上一段代码会给你
s r t
o a e
m n x
e d t
o
m
要在单词之间添加额外的空格,请在print(" ".join(i))
您可以将txt
更改为当然输入
答案 1 :(得分:1)
这个怎么样?
phrase = "Phil likes to code"
words = phrase.split()
maxlen = max([len(w) for w in words])
#now, you dont need max len , you can do a while True
#and break if all the words[ix] hit an IndexError
print "012346789"
for ix in range(maxlen):
line = ""
for w in words:
try:
line += w[ix]
except IndexError:
line += " "
line += " "
print line
,输出为:
012346789
P l t c
h i o o
i k d
l e e
s