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

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

11.04.2013, 16:11. Показов 16476. Ответов 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2013, 16:11
Ответы с готовыми решениями:

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

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

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

Множества.Дан текст, за котоpым следует точка. В алфавитном поpядке напечатать (по pазу) все стpочные pусские гласные буквы , входящие в этот текст не
Доброго времени суток..помогите пожалуйста решить задачку по множествам : Дан текст, за котоpым...

23
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 8
11.04.2013, 16:36 2
Python
1
2
3
4
5
a = str(input("Input text:"))
k = ""
for i in a[::-1]:
    k = k + i
print(k)
1
4483 / 3477 / 356
Регистрация: 12.03.2013
Сообщений: 5,986
11.04.2013, 17:18 3
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  [ТС] 4
Круто! спасибо
правда остался последний вопрос)
Python
1
[::-1]
- это двойной срез от начала до конца с вычетом последнего индекса?
т.е не совсем понятен механизм, как он перебирает буквы.
0
2 / 2 / 0
Регистрация: 08.02.2013
Сообщений: 8
11.04.2013, 19:57 5
[(Начало) : (Конец) : (Шаг (в данном случае "-1" с конца) )]

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

text = input("Введите текст: ")
print(text[::-1])
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 11
17.07.2015, 16:53 9
Срезы можно использовать как для строк, так и для массивов?
0
2732 / 2335 / 620
Регистрация: 19.03.2012
Сообщений: 8,832
17.07.2015, 17:10 10
fairy_, а ещё для кортежей, строк и т д
0
0 / 0 / 0
Регистрация: 13.07.2015
Сообщений: 11
17.07.2015, 18:09 11
Спасибо. Просто начинаю осваивать питон
0
0 / 0 / 0
Регистрация: 17.07.2015
Сообщений: 1
17.07.2015, 18:30 12
Я так понял, из книги Майкла Доусона задачка взята, тоже по ней пробую учится. Код хороший
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
2828 / 1637 / 253
Регистрация: 03.12.2007
Сообщений: 4,222
18.07.2015, 12:29 13
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 14
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 15
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
2732 / 2335 / 620
Регистрация: 19.03.2012
Сообщений: 8,832
06.09.2015, 18:31 16
Цитата Сообщение от YakobZ Посмотреть сообщение
Вот что получилось после неделе обучения по "Майклу Доунсуну"
Одна из самых бестолковейших книг.
Цитата Сообщение от YakobZ Посмотреть сообщение
конечно хотелось достичь было более краткого кода
Я тебе больше скажу, это делается все в 1 строку
Python
1
print(input("Введите любое слово: ")[::-1])
Цитата Сообщение от YakobZ Посмотреть сообщение
Зато обнаружил косяк в пайтоне если например добавить новую строку в мой код Для того что бы поэтапно показывала как переворачивает слово то корректно это делает только с английскими буквами с русскими выводит лишь последнюю букву несколько раз в зависимости от количества букв в слове/словах.
Ни какой ошибки ни где нет, ни в твоём "коде", ни темболее в интерпреаторе.
1
71 / 67 / 6
Регистрация: 08.08.2013
Сообщений: 286
Записей в блоге: 8
06.09.2015, 19:33 17
Есть еще один способ, в данной ситуации я бы его не использовал, но лишних знаний не бывает.
Python
1
2
msg = reversed(input())
print(''.join(msg))
0
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 26
19.02.2016, 08:33 18
Хз но мой код сработал (хотя сам не знаю, зачем -1::-1 написал, но работает)

Python
1
2
result = input("n\Enter messages")
print(result[-1::-1])
0
Эксперт по компьютерным сетям
5578 / 3089 / 975
Регистрация: 03.11.2009
Сообщений: 9,422
19.02.2016, 09:15 19
Цитата Сообщение от 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 20
Jabbson, Но-но-но))) Этот вариант остается за Sir alex925'ом, изящный и минималистичный))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2016, 12:32
Помогаю со студенческими работами здесь

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

Напечатать на экране текст состоящий из символов имеющих 65,71,69
Через CHR решать надо

Текст зашифрован перестановкой букв наоборот, восстановить исходный текст
текст зашифрован перестановкой букв наоборот востановить исходный текст

Текст зашифрован перестановкой букв наоборот, восстановить исходный текст
текст зашифрован перестановкой букв наоборот востановить исходный текст

Нажатием на кнопку двигается текст(на текст наоборот)
Суть, создать программу, в которой есть текст (компонент label) и кнопка. При нажатии на кнопку -...

Дана строка текста, оканчивающаяся точкой. Напечатать этот текст в обратном порядке
Дана строка текста, оканчивающаяся точкой. Напечатать этот текст в обратном порядке. Помогите,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru