#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.