#python #string #char
#python #строка #символ
Вопрос:
Цель: вывести все остальные символы из введенной пользователем строки в значениях верхнего регистра
Я вставил фрагмент, но код не будет выполняться так, как я хочу.
python
s=input("Please enter a string: ")
for char in s:
print (char[0::2].upper())
Если пользователь вводит hello, он должен выводить:
H
L
O
Комментарии:
1. Вы применяете срез к каждому отдельному символу по очереди…
2.
print(s[0::2].upper())
Ответ №1:
Вы использовали два цикла итерации; проблема требует только одного.
Ваш for
перебирает каждый символ строки. Для ввода «hello» он будет повторен пять раз. char
примет значения h
, e
, l
l
, o
, в таком порядке.
В тело цикла вы вставили дополнительную итерацию: фрагмент строки [0::2]
. Во-первых, эта вторая итерация не делает ничего полезного для вас. Далее, это неправильно в том смысле, что вы применили его к char
, который является одним символом, а не строкой.
Вам нужно применить нарезку из альтернативных символов к строке, а не к каждому из пяти символов. В качестве альтернативы, вы можете выполнить итерацию по пяти символам и напечатать только четные.
Нарезка:
print(s[0::2].upper())
Вывод:
HLO
Итерация:
for idx, char in enumerate(s):
if idx%2 == 0:
print(char.upper())
Вывод:
H
L
O
Ответ №2:
Попробуйте это:
s=input("Please enter a string: ")
print(s[0::2].upper())