избавление от символов в выходных данных в python

#python

#python

Вопрос:

Если кто-то напишет «джеймс», я хочу, чтобы моя программа оформила его имя как j * a * m * e * s Я думал, это будет просто:

 for letter in name:
 print letter ' *',
  

но я не знаю, как избавиться от последней звездочки в конце.

У меня был друг, который показал мне на C though…so Я понимаю основную концепцию, но не понимаю, как ее достичь. 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("%cn",argv[i][j]);
  }

  return 0;
}
  

Ответ №1:

В Python есть более простой способ:

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

Это использует тот факт, что в Python строки являются итеративными.

Комментарии:

1. Есть ли какой-либо способ сделать это с помощью итерации?

2. @Elsavador: В приведенном выше примере используется итерация ( join перебирает символы 'james' ). Не могли бы вы пояснить, что именно вы имеете в виду?

Ответ №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
  

Ответ №3:

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

Всегда смотрите, есть ли другой способ, прежде чем изобретать велосипед: P.