2011-11-06 158 views
0

下面的代碼迴路打印一覽:而在蟒蛇

c=0 while c < len(demolist): 
    print ’demolist[’,c,’]=’,demolist[c] 
    c=c+1 

創建此輸出:

demolist[ 0 ]= life 
demolist[ 1 ]= 42 
demolist[ 2 ]= the universe 
demolist[ 3 ]= 6 
demolist[ 4 ]= and 
demolist[ 5 ]= 7 
demolist[ 6 ]= everything 

這是怎麼回事與被印在while循環demolist[',c,']格式?爲什麼這會在括號內給出一個數字,而把demolist[c]恰好打印出來呢?

+0

我認爲沒有理由對這個問題一直-1d。 + 1d來補償。 –

回答

5

print語句接收(用逗號隔開)四個參數:

’demolist[’ # string 
c    # integer 
’]=’   # string 
demolist[c] # result of list access 

寫該行更明確的方式是:

print 'demolist[ {0} ]= {1}'.format(c, demolist[c]) 

看到它上線工作:ideone


注意:您可能還想考慮在這裏使用enumerate一陣子的一圈。

for n, elem in enumerate(demolist): 
    print 'demolist[ {0} ]= {1}'.format(n, elem) 

看到它的工作就行:ideone

2

print ’demolist[’,c,’]=’,demolist[c]輸出字符串"demolist["c值,字符串"]=",和demolist[c]值,用空格隔開。

1

c是一個整數。 demolist[c]從列表demolist返回索引c處的值。

print ’demolist[’,c,’]=’打印一系列對象,並隱式轉換爲字符串(這就是爲什麼您不需要將c(整數)顯式轉換爲字符串)。

編寫這些代碼的一種更好的方法是

for idx, item in enumerate(demolist): 
    print 'demolist[%d] = %s' % (idx, item)