2014-01-20 41 views
3

首先,我很抱歉如果這是一個已經回答了很多次的問題,我搜索了一段時間的答案,但是我發現自從我剛剛開始時發現的很多東西都在我的頭上學習python。但這裏是我的問題:直到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 "" 

回答

7

使用str.ljust

>>> '// {} {}'.format('USERID:'.ljust(16, '.'), 'ADET_ID') 
'// USERID:......... ADET_ID' 

更簡單地使用str.format與指定fill字符(見Format string syntax):

>>> '// {:.<16} {}'.format('USERID:', 'ADET_ID') 
'// USERID:......... ADET_ID' 
  • .:填字
  • <:左對齊
  • 16:結果字符串

爲什麼16的寬度?

20 - 4

4 = 2(爲//)+ 1(//後空格)+ 1(.後空間)

+0

正是我在找的東西。謝謝 – cjwert

1

雖然你應該使用@ falsetru的回答任何生產代碼,如果你」再新的編程它來學習是有用如何做到這一點「手動」:

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....