python一组数据左对齐,十个数值就换行怎么弄?

Python016

python一组数据左对齐,十个数值就换行怎么弄?,第1张

如果你想让一组数据左对齐,可以使用Python中的字符串格式化来实现。

例如,如果你有一个数组 'data,你可以使用以下代码将数据左对齐:

for i in range(len(data)):

print(f"{data[i]:<10}")

这段代码会使用Python的字符串格式化功能,在每个数据之后添加足够的空格,使得数据左对齐。

如果你想在每行十个数据后换行,可以使用以下代码:

for i in range(len(data)):

print(f"{data[i]:<10}", end='')

if (i+1) % 10 == 0:

print()

这段代码会检查当前数据是否为该行的第十个数据,如果是,则使用print()函数换行。

希望这些代码能帮助你解决问题。

对于基本的字符串对齐操作,可以使用字符串的ljust(), rjust()和 center()方法。比如:

>>>text = 'Hello World'

>>>text.ljust(20)

'Hello World '

>>>text.rjust(20)

' Hello World'

>>>text.center(20)

' Hello World '

>>>

所有这些方法都能接受一个可选的填充字符。比如:

>>>text.rjust(20,'=')

'=========Hello World'

>>>text.center(20,'*')

'****Hello World*****'

>>>

函数 format()同样可以用来很容易的对齐字符串。 你要做的就是使用 或者 ^ 字符后面紧跟一个指定的宽度。比如:

>>>format(text, '>20')

' Hello World'

>>>format(text, '<20')

'Hello World '

>>>format(text, '^20')

' Hello World '

>>>

如果你想指定一个非空格的填充字符,将它写到对齐字符的前面即可:

>>>format(text, '=>20s')

'=========Hello World'

>>>format(text, '*^20s')

'****Hello World*****'

>>>

当格式化多个值的时候,这些格式代码也可以被用在 format()方法中。比如:

>>>'{:>10s} {:>10s}'.format('Hello', 'World')

' Hello World'

>>>

format()函数的一个好处是它不仅适用于字符串。它可以用来格式化任何值,使得它非常的通用。 比如,你可以用它来格式化数字:

>>>x = 1.2345

>>>format(x, '>10')

' 1.2345'

>>>format(x, '^10.2f')

' 1.23 '

>>>

讨论

在老的代码中,你经常会看到被用来格式化文本的 % 操作符。比如:

>>>'%-20s' % text

'Hello World '

>>>'%20s' % text

' Hello World'

>>>

但是,在新版本代码中,你应该优先选择 format()函数或者方法。 format()要比 % 操作符的功能更为强大。 并且 format() 也比使用 ljust(), rjust()或 center()方法更通用, 因为它可以用来格式化任意对象,而不仅仅是字符串。

希望我的回答对你有帮助

因为宽度不够所以用空格来填充。函数为了实现字符串对齐,会在未达到指定长度的字符串末尾添上空格补齐。但是,问题在这里,它会填入ASCII码为20的space,也就是半角空格。它的长度等于每个字母或数字的宽度,但远比汉字的宽度小,所以导致补足后的字符串长度仍然不同。解决方案:重写一个格式对齐函数,函数中判断字符串是否是中文字符串,有的话则添加全角空格补齐,否则添加半角空格补齐。