2011-10-05 16 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。