我正在编写一个脚本,它将作为用户输入的字符串,并垂直打印它,如下所示:
input = "John walked to the store"
output = J w t t s
o a o h t
h l e o
n k r
e e
d
我已经写了大部分代码,如下:
import sys
def verticalPrint(astring):
wordList = astring.split(" ")
wordAmount = len(wordList)
maxLen = 0
for i in range (wordAmount):
length = len(wordList[i])
if length >= maxLen:
maxLen = length
### makes all words the same length to avoid range errors ###
for i in range (wordAmount):
if len(wordList[i]) < maxLen:
wordList[i] = wordList[i] + (" ")*(maxLen-len(wordList[i]))
for i in range (wordAmount):
for j in range (maxLen):
print(wordList[i][j])
def main():
astring = input("Enter a string:" + '\n')
verticalPrint(astring)
main()
我无法弄清楚如何获得正确的输出。我知道这是 for 循环的问题。它的输出是:
input = "John walked"
output = J
o
h
n
w
a
l
k
e
d
有什么建议吗? (另外,我想要print命令仅使用一次。)
Use itertools.zip_longest
:
>>> from itertools import zip_longest
>>> text = "John walked to the store"
for x in zip_longest(*text.split(), fillvalue=' '):
print (' '.join(x))
...
J w t t s
o a o h t
h l e o
n k r
e e
d
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)