对齐整数(基本Python)

Dra*_*ter 0 python

嘿伙计们,我需要一些帮助来对齐我的整数。我将向您展示我的代码是什么、我的输出是什么以及我想要的输出是什么。谢谢!

代码:

test_sign='#'
test_numbers=[100000,5000000,7000000]
test_calc_list=[]
test_sum=sum(test_numbers)
test_list=['Testcase1','Testcase2','Testcase3']
test_sign_list=[]

for x in test_numbers:
    test_calc=round((x/float(test_sum)*10))
    test_calc_list.append(test_calc)

for y in test_calc_list:
    y=int(y)
    signs=y*test_sign
    test_sign_list.append(signs)

for z in range(len(test_list)):
    print "%8s"%test_list[z]+":",test_sign_list[z],test_numbers[z]
Run Code Online (Sandbox Code Playgroud)

输出:

Testcase1:  100000
Testcase2: #### 5000000
Testcase3: ###### 7000000
Run Code Online (Sandbox Code Playgroud)

期望的输出:

Testcase1:         100000
Testcase2: ####   5000000
Testcase3: ###### 7000000
Run Code Online (Sandbox Code Playgroud)

aba*_*ert 5

这可能是学习{}-formatting 的好时机,而不是更深入地学习(不是完全不赞成,但不鼓励)%-formatting。

\n\n

特别是因为您使用的唯一%格式似乎不正确。(没有充分的理由使用%8s您知道长度为 9 个字符的字符串\xe2\x80\xa6)

\n\n

所以:

\n\n
print \'{}: {:<6} {:>7}\'.format(test_list[z], test_sign_list[z], test_numbers[z])\n
Run Code Online (Sandbox Code Playgroud)\n\n

有关所有选项的详细信息,请参阅字符串格式。

\n\n
\n\n

作为旁注,我认为这样你的循环会更具可读性:

\n\n
for test, sign, number in zip(test_list, test_sign_list, test_numbers):\n    print \'{}: {:<6} {:>7}\'.format(test, sign, number)\n
Run Code Online (Sandbox Code Playgroud)\n