Как можно напечатать символы слова в обратном порядке с использованием цикла while?

Как можно переписать код так, чтобы перевернуть строку посимвольно, но оставить последние две строки без изменений?
  • 30 января 2024 г. 10:29
Ответы на вопрос 2
Если вы хотите перевернуть строку посимвольно в обратном порядке с использованием цикла `while`, вам нужно сначала определить длину строки, а затем в цикле отталкиваться от конца к началу. Вот пример кода на Python:

```python
word = "Привет"
reversed_word = ""
index = len(word) - 1

while index >= 0:
    reversed_word += word[index]
    index -= 1

print(reversed_word)  # выводит 'тевирП'
```

Для второго вопроса, если вы хотите перевернуть строку, оставив последние две буквы без изменений, вам следует изменить код следующим образом:

```python
word = "Привет"
reversed_word = ""
index = len(word) - 3  # Сохраняем последние две буквы

while index >= 0:
    reversed_word += word[index]
    index -= 1

# Добавляем неизменённые последние две буквы.
reversed_word += word[-2:]  # Срезы работают даже для строк с много байтовыми символами.

print(reversed_word)  # выводит 'тевирет'
```

Обратите внимание, что срезы (`slicing`) в Python корректно работают с многобайтовыми символами, так что использование `word[-2:]` безопасно при условии, что строка представляет собой последовательность символов в кодировке UTF-8 или другой Unicode-совместимой кодировке.
<pre><code class="python">def f(word):
    i = len(word) - 1
    while i &gt;= 0:
        print(word[i])
        i -= 1

f('abcde')

# e
# d
# c
# b
# a</code></pre>
Похожие вопросы