2

フレーズを垂直に印刷するコードを作成しようとしていますが、特定の場所に印刷する必要があります。ユーザーに文字列を入力させていますが、出力をスペースで特定の方法で表示する必要があります。私はすでにいくつかのコードを書いています:

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 like to code. 次のような出力が必要です。

P    l     t  c
h    i     o  o
i    i        d
l    k        e
     e
     s

単語と単語の間のスペースは、スペース 1 つを含む、あたかも文字がそこにあるかのようなスペースです。インポートは使用できず、使用できる関数は分割のみです。そこに if ステートメントを含む for ループが必要であり、その中に for ループを含む別の for ループが必要です。本当に助けていただければ幸いです。

4

2 に答える 2

3

これはどう?

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
于 2015-09-30T18:48:20.100 に答える