2011-10-05 2 views
2

Si quelqu'un écrit James ', je veux que mon programme de style de leur nom j * a * m * e * s je pensais que ce serait simple:se débarrasser de caractères dans une sortie en python

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

mais je ne sais pas comment se débarrasser du dernier astérisque à la fin.

J'ai eu un ami me montrer en C si ... donc je comprends le concept sous-jacent, mais pas comment y parvenir. C est inférieure à:

#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; 
} 

Répondre

8

Il est un moyen plus facile en Python:

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

Cela fait usage du fait que Python, les chaînes sont itérables.

+0

Y a-t-il un moyen de le faire en utilisant l'itération? – Elsavador

+0

@Elsavador: Ce qui précède utilise l'itération ('join' itére sur les caractères de' 'james''). Pourriez-vous préciser ce que vous voulez dire exactement? – NPE

2

Il est facile:

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

Modifier:

Pour comprendre comment le fait ici est un code plus détaillé qui explique le concept.

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' 

Toujours regarder s'il y a une autre façon avant de réinventer la roue: P.

Questions connexes