2011-10-05 38 views
2

如果有人寫「詹姆斯」,我希望我的節目樣式的名稱爲J * A * M * E * S 我想這將是簡單的:得到在輸出擺脫字符在python

for letter in name: 
print letter+' *', 

但我不知道如何擺脫最後的asterix。

我有一位朋友在C中展示我......所以我理解底層概念,而不是如何實現它。 C是如下:

#include <string.h> 
#include <stdio.h> 

int main(int argc, char* argv[]) { 
    int i; 

    for (i = 1; i < argc; i++) { 
    int len = strlen(argv[i]); 
    int j; 

    for (j = 0; j < len-1; j++) 
     printf("%c*",argv[i][j]); 

    printf("%c\n",argv[i][j]); 
    } 

    return 0; 
} 

回答

8

在Python中一個簡單的方法:

>>> '*'.join('james') 
'j*a*m*e*s' 

這使得使用的事實是,在Python中,字符串是可迭代。

+0

有沒有辦法使用迭代來做到這一點? – Elsavador

+0

@Elsavador:上面的代碼使用迭代('join'遍歷''james''的字符)。你能澄清一下你的意思嗎? – NPE

2

這很容易:

name = 'james' 
print '*'.join(name) 

編輯

瞭解它是如何在這裏做的是一個更詳細的代碼,以解釋這個概念。

name = 'james' 

decorated_name = name[0] 

for letter in name[1:]: 
    decorated_name = decorated_name + '*' + letter 

print decorated_name 
0
>>> "*".join(list("James")) 
'J*a*m*e*s' 

總是尋找是否有重新發明輪子之前的另一種方法:P。