Используя ввод, чтобы подсказать пользователю, как я могу поменять местами имя и фамилию, сделать первую букву заглавной и добавить запятую без использования составного условия? Я смог изменить это и добавить запятую. Проблема в том, что мне не нужна последняя запятая.
names=input('What is your name:').split()
for names in reversed(names):
print(names.capitalize + ',', end=' ')
Результат таков:
What is your name:steve smith
Smith, Steve,
print(", ".join(n.capitalize() for n in reversed(names.split())))
Можете ли вы описать (словами) логику, которая будет использоваться для принятия решения о том, печатать запятую или нет? Теперь вы можете реализовать это в коде?
Если пользовательский ввод Дэвид Ли Рот, вы хотите, чтобы вывод был «Рот, Ли, Дэвид» или "Рот, Дэвид Ли"? (Или, я полагаю, «Ли Рот, Дэвид»)
Добро пожаловать в Stack Overflow. Я нашел связанный дубликат, поставив python print with commas between but not last
в поисковую систему в качестве первого результата. Это хорошая идея, чтобы попытаться решить проблемы исследовать, прежде чем спрашивать здесь.
Спасибо, ребята, я понял, что вы сделали. Я до сих пор учусь.
Сделайте что-то вроде этого:
names = input("What is your name: ").split(" ")
print(', '.join([names[1].capitalize(), names[0].capitalize()]))
Просто продолжение, то, что вы ищете, — это явно функция join()
, которая склеивает все элементы массива, используя предоставленную строку соединения. В этом случае ', '
. Соединительная строка находится только между элементами, а не только в конце каждого элемента. Таким образом, вы не получите завершающую запятую.
Ну, это касается только тех, у кого два имени. ', '.join(reversed(names))
может быть лучше.
Спасибо за дополнительную информацию, Натаниэль. И да, Тим, ты прав, я просто взял пример ввода. Это было немного коротко. Спасибо, что указали.
можете ли вы поделиться своей попыткой кодирования этой проблемы? @GMoney