Vertical Print String - Python3.2

风格不统一 提交于 2021-01-02 08:17:11

问题


I'm writing a script that will take as user inputed string, and print it vertically, like so:

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

I've written most of the code, which is as follows:

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()

I'm having trouble figure out how to get the output correct. I know its a problem with the for loop. It's output is:

input = "John walked"

output = J
         o
         h
         n

         w
         a
         l
         k
         e
         d

Any advice? (Also, I want to have the print command used only once.)


回答1:


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      



回答2:


Thanks so much for the help! That definitely worked!

I ended up speaking to a friend of mine not long after posting this, and I modified the for loops to the following:

newline = ""

    for i in range (maxLen):
        for j in range (wordAmount):
            newline = newline + wordList[j][i]
        print (newline)
        newline = ""

which worked beautifully as well.




回答3:


a = input()
for x in range (0,len(a)):
    print(a[x])


来源:https://stackoverflow.com/questions/19622169/vertical-print-string-python3-2

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!