python 中的函数,用于调整字符串(向左、居中或向右)

Function in python that justifies string (to either left, center or right)

我想在我的代码中使用一个函数来调整字符串。我卡住了,请看我的代码。 提前致谢。

def justify(s, pos):      #(<string>, <[l]/[c]/[r]>)
if len(s)<=70:

    if pos == l:
        print 30*' ' + s
    elif pos == c:
        print ((70 - len(s))/2)*' ' + s
    elif pos == r:
        print (40 - len(s)*' ' + s

    else:
        print('You entered invalid argument-(use either r, c or l)')
else:
    print("The entered string is more than 70 character long. Couldn't be justified.")

你错过了第二个 elif 的括号。更正以下代码 -

def justify(s, pos):
    if len(s)<=70:
        if pos == l:
            print 30*' ' + s
        elif pos == c:
            print ((70 - len(s))/2)*' ' + s
        elif pos == r:
            #you missed it here...
            print (40 - len(s))*' ' + s
        else:
            print('You entered invalid argument-(use either r, c or l)')
    else:
        print("The entered string is more than 70 character long. Couldn't be justified.")
def justify2(s, pos):
    di = {"l" : "%-70s", "r" : "%70s"}

    if pos in ("l","r"):
        print ":" + di[pos] % s + ":"
    elif pos == "c":
        split = len(s) / 2
        s1, s2 = s[:split], s[split:]
        print ":" + "%35s" % s1 + "%-35s" % s2 + ":"
    else:
        "bad position:%s:" % (pos)


justify2("abc", "l")
justify2("def", "r")
justify2("xyz", "c")

:abc                                                                   :
:                                                                   def:
:                                  xyz                                 :