首先我道歉,如果这是一个已经多次回答的问题,我会在一段时间内寻找答案,但是我发现的大部分内容都是因为我刚刚开始学习python。但这是我的问题:
我想打印期间直到行的第20个字符或列,以便句点右侧的数据全部排成一行,如下所示。
---------------
HDL
---------------
//============================================================
// USERID:........ ADET_ID
// PROGRAMMER:.... Lname, Fname MI.
// COURSE:........ CSCI-400
// TERM:.......... SP14
// PROJECT:....... 01
// FILENAME:...... AnExample.hdl
//============================================================
以下是我目前所拥有的内容,但如何在没有实际硬编码的情况下考虑这些时段?
print("//", end = "")
for num in range (0,self.dividerLength):
print("=", end = "")
print("\n", end = "")
print("// USERID:")
print("// PROGRAMMER:")
print("// COURSE:")
print("// TERM:")
print("// PROJECT:")
print("// FILENAME:")
return ""
答案 0 :(得分:7)
使用str.ljust
:
>>> '// {} {}'.format('USERID:'.ljust(16, '.'), 'ADET_ID')
'// USERID:......... ADET_ID'
更简单地使用指定了fill
字符的str.format
(请参阅Format string syntax):
>>> '// {:.<16} {}'.format('USERID:', 'ADET_ID')
'// USERID:......... ADET_ID'
.
:填充字符<
:left alignment 16
:结果字符串的宽度为什么选择16?
20 - 4
4 = 2(对于//
)+ 1(//
之后的空格)+ 1(.
之后的空格)
答案 1 :(得分:1)
虽然您应该对任何生产代码使用@fatetru的答案,但如果您不熟悉编程,那么了解如何“手动”执行此操作非常有用:
DESIRED_SIZE= 10 #size of the final string we want
s= "USERID" #our initial string
n= DESIRED_SIZE-len(s) # how many characters must we add
#create a string with n "." characters
#on a lower-level language (like C) you'll need to use a loop to do this
padding= "."*n
result= s+padding
print result
这会打印USERID....