Этот код должен печатать все остальные символы с использованием циклов for

#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())