Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/103: Рейтинг темы: голосов - 103, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 25.01.2013
Сообщений: 4

Принять текст из пользовательского ввода, и напечатать этот текст на экране наоборот

11.04.2013, 16:11. Показов 22744. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте дорогие форумчане.Я изучаю python несколько дней, так что прошу не ругать)
Столкнулся с единственной проблемой,на текущий момент, в плане реализации программы.
Суть программы такая: "Нужно написать программу, которая бы принимала текст из пользовательского ввода
и печатала этот текст на экране наоборот.
"

Вообщем то алгоритм в свой голове я представляю, но не получается технически его реализовать.
Единственно что получилось сделать это вот:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
word = input ("Введите ваше слово, не меньше чем из 3 букв")
print ("ваше слово длинной", len(word))
if len(word) == 3:
    print(word[2])
    print(word[1])
    print(word[0])
 
elif len(word) == 4:
    print(word[3])
    print(word[2])
    print(word[1])
    print(word[0])
 
elif len(word) == 5:
    print(word[4])
    print(word[3])
    print(word[2])
    print(word[1])
    print(word[0])
и т.д

Но конечно этот код ужасен, и алгоритм конечно же не тот который я представляю.
Вообщем я прошу помочь написать нормальный код данной программы
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2013, 16:11
Ответы с готовыми решениями:

Дан текст из 60 литер. Напечатать только строчные русские буквы, входящие в этот текст
Помогите пожалуйста : Дан текст из 60 литер. Напечатать только строчные русские буквы, входящие в этот текст.

Дан текст из 60 литер.Напечатать только строчные русские буквы, входящие в этот текст
Дан текст из 60 литер.Напечатать только строчные русские буквы, входящие в этот текст

Дан текст из 60 символов. Напечатать этот текст, подчёркивая все входящие в него гласные
Дан текст из 60 символов. Напечатать этот текст, подчёр- кивая (ставя минусы в соответствующих позициях следу- ющей строки) все...

23
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 8
11.04.2013, 16:36
Python
1
2
3
4
5
a = str(input("Input text:"))
k = ""
for i in a[::-1]:
    k = k + i
print(k)
1
4528 / 3522 / 358
Регистрация: 12.03.2013
Сообщений: 6,038
11.04.2013, 17:18
Python
1
2
while True:
    input("> ")[::-1]
Добавлено через 6 минут
Ой, напечатать забыл.

Python
1
2
while True:
    print(input("> ")[::-1])
Впрочем, это то же самое, что у Negal.

voxfoot, вы бы хоть цикл написали for i in range(len(word)). Как там в Learn You a Haskell: "Repeating yourself (three times) while programming is about as desirable as getting kicked inna head."
1
0 / 0 / 1
Регистрация: 25.01.2013
Сообщений: 4
11.04.2013, 19:55  [ТС]
Круто! спасибо
правда остался последний вопрос)
Python
1
[::-1]
- это двойной срез от начала до конца с вычетом последнего индекса?
т.е не совсем понятен механизм, как он перебирает буквы.
0
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 8
11.04.2013, 19:57
[(Начало) : (Конец) : (Шаг (в данном случае "-1" с конца) )]

То есть мы перебираем весь список с конца
1
 Аватар для pashtet-kun
135 / 120 / 37
Регистрация: 30.09.2012
Сообщений: 400
11.04.2013, 19:58
это 'тройной' срез - от начала и до конца, третий параметр - '-1' - это шаг. Т.е с шагом 1 с конца
1
0 / 0 / 1
Регистрация: 25.01.2013
Сообщений: 4
11.04.2013, 20:08  [ТС]
Спасибо парни! разобрался
0
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 1
17.07.2015, 05:12
А так не проще?

text = input("Введите текст: ")
print(text[::-1])
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 11
17.07.2015, 16:53
Срезы можно использовать как для строк, так и для массивов?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
17.07.2015, 17:10
fairy_, а ещё для кортежей, строк и т д
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 11
17.07.2015, 18:09
Спасибо. Просто начинаю осваивать питон
0
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 1
17.07.2015, 18:30
Я так понял, из книги Майкла Доусона задачка взята, тоже по ней пробую учится. Код хороший
Python
1
2
text = input("Введите текст: ")
print(text[::-1])
,но в книге двойной срез не освещается (почему автор не указал, не понятно?). Смог решить вопрос, вот так (если брать, о каких операторах и т.д. говорилось, до этого задания в книге).
Python
1
2
3
4
5
6
7
8
9
10
11
a = str(input("Введите слово:"))
 
s = ""
f = 1
f += len(a)
 
for i in range(1, f):
    p = -i
    s += a[p]
 
print(s)
Если, есть другие варианты, с удовольствием бы посмотрел.
0
2838 / 1647 / 254
Регистрация: 03.12.2007
Сообщений: 4,222
18.07.2015, 12:29
Python
1
2
3
4
5
s[::-1]
''.join(reversed(s))
''.join(s[i] for i in range(len(s) - 1, -1, -1))
''.join(s[-i] for i in range(1, len(s) + 1))
functools.reduce(lambda a, c: c + a, s)
1
0 / 0 / 0
Регистрация: 20.07.2015
Сообщений: 1
20.07.2015, 17:19
Neznauschii, да, тоже по нему изучаю. Вот мой:
Python
1
2
3
4
5
6
7
text = input('Введите слово: ')
dlina = len(text)
word = ''
while len(word) != dlina:
    word += text[-1]
    text = text[:-1]
print(word)
0
0 / 0 / 0
Регистрация: 06.09.2015
Сообщений: 10
06.09.2015, 18:12
Python
1
2
3
4
5
6
word=input("Введите любое слово: ")
finish=-len(word)-1
newword=""
for i in range(-1,finish,-1):
    newword+=word[i]
print(newword)
Вот что получилось после неделе обучения по "Майклу Доунсуну" конечно хотелось достичь было более краткого кода как у товарищей повыше но с тем багажем знаний что есть лучше бы и не смог. Зато обнаружил косяк в пайтоне если например добавить новую строку в мой код Для того что бы поэтапно показывала как переворачивает слово то корректно это делает только с английскими буквами с русскими выводит лишь последнюю букву несколько раз в зависимости от количества букв в слове/словах.

Python
1
2
3
4
............................
for i in range(-1,finish,-1):
    print(newword)# убрать эту строку если печатаете русские буквы
...................................
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
06.09.2015, 18:31
Цитата Сообщение от YakobZ Посмотреть сообщение
Вот что получилось после неделе обучения по "Майклу Доунсуну"
Одна из самых бестолковейших книг.
Цитата Сообщение от YakobZ Посмотреть сообщение
конечно хотелось достичь было более краткого кода
Я тебе больше скажу, это делается все в 1 строку
Python
1
print(input("Введите любое слово: ")[::-1])
Цитата Сообщение от YakobZ Посмотреть сообщение
Зато обнаружил косяк в пайтоне если например добавить новую строку в мой код Для того что бы поэтапно показывала как переворачивает слово то корректно это делает только с английскими буквами с русскими выводит лишь последнюю букву несколько раз в зависимости от количества букв в слове/словах.
Ни какой ошибки ни где нет, ни в твоём "коде", ни темболее в интерпреаторе.
1
 Аватар для akzo
71 / 67 / 6
Регистрация: 08.08.2013
Сообщений: 286
Записей в блоге: 8
06.09.2015, 19:33
Есть еще один способ, в данной ситуации я бы его не использовал, но лишних знаний не бывает.
Python
1
2
msg = reversed(input())
print(''.join(msg))
0
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 26
19.02.2016, 08:33
Хз но мой код сработал (хотя сам не знаю, зачем -1::-1 написал, но работает)

Python
1
2
result = input("n\Enter messages")
print(result[-1::-1])
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
19.02.2016, 09:15
Цитата Сообщение от muzqaymoq-com Посмотреть сообщение
result = input("n\Enter messages")
print(result[-1::-1])
Python
1
print(input("Msg: ")[::-1])
1
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 26
19.02.2016, 12:32
Jabbson, Но-но-но))) Этот вариант остается за Sir alex925'ом, изящный и минималистичный))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.02.2016, 12:32
Помогаю со студенческими работами здесь

Дан текст из 60 литер.Напечатать только строчные русские буквы, входящие в этот текст
Дан текст из 60 литер.Напечатать только строчные русские буквы, входящие в этот текст

Дан текст из малых латинских букв. Напечатать по разу все буквы, входящие в этот текст
Имя входного файла zmn8.in Имя выходного файла zmn8.out Дан текст из малых латинских букв. Напечатать по разу все буквы, входящие в...

Дан текст из строчных русских букв, за которым следует точка. Напечатать этот текст заглавными русскими буквами
Здравствуйте, кто-нибудь может подсказать как делать данную программу? У меня было две версии: 1)использовать оператор string, но из -за ...

Дан произвольный текст. Напечатать в алфавитном порядке все буквы, которые входят в этот текст по одному разу
for(a=0; a < n; a++) for(b=n-1; b >= a; b--) { if(i > i) { t = i; i = i; i = t;...

Вводится текст, за которым следует точка. В алфавитном порядке напечатать (по разу) все строчные русские буквы, входящие в этот текст
Вводится текст, за которым следует точка. В алфавитном порядке напечатать (по разу) все строчные русские буквы, входящие в этот текст.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru