3

Pythonには、文字列の長さを返すlenという組み込み関数が用意されているため、の値はlen('allen')です5

right_justifyパラメータとして名前が付けられた文字列を取り、文字列sの最後の文字が表示の列70にあるように、十分な先頭のスペースを含む文字列を出力するという名前の関数を記述します。

>>> right_justify('allen')
                                                       allen

私はそれを次のように解決しました:

def right_justify(s):
    print "                                                                 " + s    

right_justify('allen')

正しいですか?

私がする必要があることを行うための組み込みのPythonメソッドはありますか?

4

15 に答える 15

8

文字列のフォーマットは非常に簡単です:

def right_justify(s):
    print "%70s" % s
于 2012-11-18T13:20:20.990 に答える
3

使用format

In [60]: strs="allen"

In [61]: format(strs,">70s")
Out[61]: '                                                                 allen'

In [62]: format(strs,">70s").index('n')
Out[62]: 69

または使用str.format

In [68]: "{0:>70s}".format(strs)
Out[68]: '                                                                 allen'
于 2012-11-18T13:24:58.313 に答える
3

絶対に、ここで適用できるちょっとしたトリックがあります。

def right_justify(s, total_length=70):
    return ' ' * (total_length - len(s)) + s

完全に明確でない場合は、total_length(s個の空白スペースの長さ)を出力します。

于 2012-11-18T13:19:27.853 に答える
1
def right_justify(s):
    print len(s)
    print ' '* (70 - len(s)) + s

word = raw_input('enter any word')
right_justify(word)
于 2016-11-18T00:02:04.807 に答える
1
def right_justify(s):
    print ('')
    print ('Number of chars: ' + str(len(s)))
    print ('')
    print (' '* (70 - len(s)) + s)

word = input('Enter any word: ')
right_justify(word)
于 2017-05-30T11:34:14.907 に答える
0

私はあなたのためにあなたの宿題をしませんが、ここに簡単なアルゴリズムがあります:

  1. 文字列の長さを調べます(ヒント:) len()

  2. 印刷する必要のあるスペースの数を調べます(ヒント:文字列が5文字で、全長が70の場合、65スペースを印刷します)。

  3. スペースを印刷します。

  4. 文字列を印刷します。

于 2012-11-18T13:17:14.777 に答える
0
     def right_justify(s):
         print((70-len(s))*' '+s)
于 2013-06-15T19:52:44.360 に答える
0
def right_justify(s):
...  length=len(s)
...  spaces=70-length
...  print (' ' * spaces) + s
...
>>> right_justify('allen')
于 2017-02-11T06:12:16.087 に答える
0
def right_justify (s):
    x = ' '
    w = (70-len(s))*x + s
    print (w)
于 2017-10-04T02:26:03.827 に答える
0

質問を読み間違えたかもしれませんが、与えられた答えは、変数が1文字の長さである場合にのみ正しい結果をもたらすようです。私もコーディングに慣れていないので、これはベースから大きく外れているかもしれません。

def right_justify(s):
        length = len(s)
        adjustedLength = len(s) -1
        spaces = 70 - length + adjustedLength
        print(spaces * " " + "s")


s = "whatever you want to enter"
right_justify(s)

私はこれを行ったので、sが何として定義されていても、69個のスペースを取得してから「s」を取得します。

これが間違っている場合は、私に知らせてください。そうすれば、私の考え方を調整できます。

于 2017-10-17T19:33:23.880 に答える
0
def right_justify(s):
    length =len(s)
    spaces = 70-length
    print((" " * spaces) + s)

word = "monty"
right_justify(word)

定義後、長さは(s)ではなく、選択した単語に依存します...したがって、数式を作成します。長さ、スペース、印刷はインデントする必要があります。単語をstrから変数形式に変換できるように、変数を発明する必要があります。

于 2017-11-28T11:42:47.967 に答える
0

これが作業コードです

    def right_justify(s):

    length = len('s')

    spaces = 70 - length 
    print "required space is",spaces

    print(" " * spaces) + s

right_justify('allen')

出力

required  space is  69
                                                                     allen
于 2018-03-11T18:10:02.410 に答える
0

私はそれを行うための多くの簡単な方法の1つであるこのようなことをしたでしょう:

def right_just(s):    
    print(s.rjust(70))

right_just('allen')
于 2018-06-30T04:26:02.140 に答える
0

それをよりダイナミックにするためのさらに別の方法を考えました:)

働き

def right_justify(s、num):

print(s.rjust(num))

関数を呼び出す

right_justify( "Allen"、50)

于 2018-06-30T04:32:10.243 に答える
0

s最後の文字が列70に表示されるようにするには、次のように70から長さを引く必要があります。

def right_justify(s):
    print(" " * (70 - (len(s)) + s)
于 2018-08-18T21:22:38.653 に答える