簡體   English   中英

修復字符串格式的正確 alignment

[英]Fixing right alignment of string formatting

我正在嘗試對齊列表的 output,如下所示:

在此處輸入圖像描述

但它總是像這樣出現:

在此處輸入圖像描述

我所有這些的代碼是:

subject_amount = int(input("\nHow many subject do you want to enrol? "))

class Subject:
def __init__(self, subject_code, credit_point):
    self.subject_code = subject_code
    self.credit_point = credit_point

subjects = []

for i in range(1, (subject_amount + 1)):
subject_code = input("\nEnter subject " + str(i) + ": ")
credit_point = int(input("Enter subject " + str(i) + " credit point: "))
subject = Subject(subject_code, credit_point)
subjects.append(subject)

print ("\nSelected subjects: ")

i, total = 0, 0

print("{0:<} {1:>11}".format("Subject: ", "CP"))

while(i < subject_amount):
print("{0:<} {1:14}".format(subjects[i].subject_code, subjects[i].credit_point))
total += subjects[i].credit_point
i = i + 1

print("{0:<} {1:>11}".format("Total cp: ", total))

我也嘗試更改間距的值,但沒有結果。

對我的代碼的 rest 的任何反饋也非常感謝。

您不能使用普通的 Python 格式來執行此操作,因為填充量取決於兩個字符串。 嘗試定義一個 function 例如:

def format_justified(left, right, total):
    padding = total - len(left)
    return "{{0}}{{1:>{}}}".format(padding).format(left, right)

然后只需使用:

print(format_justified("Total cp:", total, 25))

其中 25 是您想要的總線寬。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM