Считывание нескольких строк из input()
Функция input() ждёт, пока пользователь нажнёт на клавиш Enter , и затем немедленно возвратит введенную строку, также когда пользователь затем что-то писал, это или потеряется, или передается последующей команде на ввод с клавиатуры.
Значит, нельзя 1 командой input() ввести более строк — нужно это повторить, например в таком цикле:
text = "" while True: x = input() if x: text += x + " " else: break print(text)
Привет как дела ?
и ещё одного нажатия на Enter получится вывод
Привет как дела ?
Как ввести несколько строк через input () в Python?
Есть несколько строк входных данных (их число заранее неизвестно).
Например
прооо кууа
акпк енг рнрг нрн
полид кпр нннр
Как ввести их в один список.
Мои попытки с использованием стоп -слов ниже:
book=[]
stroka=input().split()
while stroka!=»»:
book.extend(stroka)
stroka=input().split()
- Вопрос задан более трёх лет назад
- 12033 просмотра
Комментировать
Решения вопроса 0
Ответы на вопрос 2

a,b=[],[1] while len(b)!=0: b=[b for b in input().split()] for i in range(len(b)): a.append(b[i])
Ответ написан более трёх лет назад
Нравится 1 9 комментариев
Работа со строками в Python: литералы

Строки в Python — упорядоченные последовательности символов, используемые для хранения и представления текстовой информации, поэтому с помощью строк можно работать со всем, что может быть представлено в текстовой форме.
Это первая часть о работе со строками, а именно о литералах строк.
Литералы строк
Работа со строками в Python очень удобна. Существует несколько литералов строк, которые мы сейчас и рассмотрим.
Строки в апострофах и в кавычках
Строки в апострофах и в кавычках - одно и то же. Причина наличия двух вариантов в том, чтобы позволить вставлять в литералы строк символы кавычек или апострофов, не используя экранирование.
Экранированные последовательности — служебные символы
Экранированные последовательности позволяют вставить символы, которые сложно ввести с клавиатуры.
| Экранированная последовательность | Назначение |
|---|---|
| \n | Перевод строки |
| \a | Звонок |
| \b | Забой |
| \f | Перевод страницы |
| \r | Возврат каретки |
| \t | Горизонтальная табуляция |
| \v | Вертикальная табуляция |
| \N | Идентификатор ID базы данных Юникода |
| \uhhhh | 16-битовый символ Юникода в 16-ричном представлении |
| \Uhhhh… | 32-битовый символ Юникода в 32-ричном представлении |
| \xhh | 16-ричное значение символа |
| \ooo | 8-ричное значение символа |
| \0 | Символ Null (не является признаком конца строки) |
«Сырые» строки — подавляют экранирование
Если перед открывающей кавычкой стоит символ ‘r’ (в любом регистре), то механизм экранирования отключается.
Но, несмотря на назначение, "сырая" строка не может заканчиваться символом обратного слэша. Пути решения:
Главное достоинство строк в тройных кавычках в том, что их можно использовать для записи многострочных блоков текста. Внутри такой строки возможно присутствие кавычек и апострофов, главное, чтобы не было трех кавычек подряд.
Это все о литералах строк и работе с ними. О функциях и методах строк я расскажу в следующей статье.
Для вставки кода на Python в комментарий заключайте его в теги
- Модуль csv - чтение и запись CSV файлов
- Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
- Онлайн-обучение Python: сравнение популярных программ
- Книги о Python
- GUI (графический интерфейс пользователя)
- Курсы Python
- Модули
- Новости мира Python
- NumPy
- Обработка данных
- Основы программирования
- Примеры программ
- Типы данных в Python
- Видео
- Python для Web
- Работа для Python-программистов
- Сделай свой вклад в развитие сайта!
- Самоучитель Python
- Карта сайта
- Отзывы на книги по Python
- Реклама на сайте
Получение пользовательского ввода в Python с input()
Получение и обработка информации — один из важнейших элементов любого языка программирования, особенно если речь идет о получении информации от пользователей.
Python, будучи медленным относительно таких языков, как C или Java, предлагает продвинутые инструменты для получения, анализа и обработки данных от конечного пользователя.
В этом материале речь пойдет о том, какие функции Python можно использовать для этих целей.
Ввод в Python
Для получения информации с клавиатуры в Python есть функции input() или raw_input() (о разнице между ними чуть позже). У них есть опциональный параметр prompt , который является выводимой строкой при вызове функции.
Когда input() или raw_input() вызываются, поток программы останавливается до тех пор, пока пользователь не введет данные через командную строку. Для ввода нужно нажать Enter после завершения набора текста. Обычно Enter добавляет символ новой строки ( \n ), но не в этом случае. Введенная строка просто будет передана приложению.
Интересно, что кое-что поменялось в принципе работе функции между Python 2 и Python 3, что отразилось в разнице между input() и raw_input() . Об этом дальше.
Сравнение функций input и raw_input
Разница между этими функциями зависит от версии Python. Так, в Python 2 функция raw_input() используется для получения ввода от пользователя через командную строку, а input() оценивает ее и попробует запустить как код Python.
В Python 3 от raw_input() избавились, оставив только input() . Она используется для получения ввода пользователя с клавиатуры. Возможности input() из Python 2 в Python 3 работать не будут. Для той же операции нужно использовать инструкцию eval(input()) .
Взгляните на пример функции raw_input в Python 2.
# Python 2 txt = raw_input("Введите что-нибудь, чтобы проверить это: ") print "Это то, что вы только что ввели?", txt
Вывод
Введите что-нибудь, чтобы проверить это: Привет, мир! Это то, что вы только что ввели? Привет, мир!
А вот как она работает в Python 3
# Python 3 txt = input("Введите что-нибудь, чтобы проверить это: ") print("Это то, что вы только что ввели?", txt)
Вывод
Введите что-нибудь, чтобы проверить это: Привет, мир 3! Это то, что вы только что ввели? Привет, мир 3!
Дальше в материале будет использоваться метод input из Python 3, если не указано другое.
Строковый и числовой ввод
По умолчанию функция input() конвертирует всю получаемую информацию в строку. Прошлый пример продемонстрировал это.
С числами нужно работать отдельно, поскольку они тоже изначально являются строками. Следующий пример показывает, как можно получить информацию числового типа:
# Ввод запрашивается и сохраняется в переменной test_text = input ("Введите число: ") # Преобразуем строку в целое число. # функция float() используется вместо int(), # для преобразования пользовательского ввода в десятичный формат, test_number = int(test_text) # Выводим в консоль переменную print ("Введенное число: ", test_number)
Вывод
Введите число: 13 Введенное число: 13
Того же можно добиться и таким образом:
test_number = int(input("Введите число: "))
Здесь сразу после сохранения ввода происходит преобразование и присваивание значения переменной.
Нужно лишь отметить, что если пользователь ввел не целое число, то код вернет исключение (даже если это число с плавающей точкой).
Обработка исключений ввода
Есть несколько способов, как можно удостовериться в том, что пользователь ввел корректные данные. Один из них — перехватывать все возможные ошибки, которые могут возникнуть.
Вот такой код считается небезопасным:
test2word = input("Сколько вам лет? ") test2num = int(test2word) print("Ваш возраст ", test2num)
Запустим его и введем следующее:
Сколько вам лет? Пять
При вызове функции int() со строкой Пять появится исключение ValueError , и программа остановит работу.
Вот как можно сделать код безопаснее и обработать ввод:
test3word = input("Введите свое счастливое число: ") try: test3num = int(test3word) print("Это правильный ввод! Ваше счастливое число: ", test3num) except ValueError: print("Это не правильный ввод. Это не число вообще! Это строка, попробуйте еще раз.")
Этот блок оценит ввод. Если он является целым числом, представленным в виде строки, то функция input() конвертирует его в целое число. Если нет, то программа выдаст исключение, но вместо ошибки оно будет перехвачено. В результате вызовется вторая инструкция print .
Вот так будет выглядеть вывод с исключением.
Введите свое счастливое число: Семь Это не правильный ввод. Это не число вообще! Это строка, попробуйте еще раз.
Такой код можно объединить с другой конструкцией, например, циклом for, чтобы убедиться, что код будет выполняться постоянно, до тех пор, пока пользователь не введет те данные, которые требуются.
Полный пример
# Создадим функцию для демонстрации примера def example(): # Бесконечный цикл, который продолжает выполняться # до возникновения исключения while True: test4word = input("Как вас зовут? ") try: test4num = int(input("Сколько часов вы играете на своем мобильном телефоне?" )) # Если полученный ввод не число, будет вызвано исключение except ValueError: # Цикл будет повторяться до правильного ввода print("Error! Это не число, попробуйте снова.") # При успешном преобразовании в целое число, # цикл закончится. else: print("Впечатляет, ", test4word, "! Вы тратите", test4num*60, "минут или", test4num*60*60, "секунд на игры в своем телефоне!") break # Вызываем функцию example()
Вывод:
Как вас зовут? Александр Сколько часов вы играете на своем мобильном телефоне? 3 Впечетляет, Александр! Вы тратите 180 минут или 10800 секунд на игры в своем телефоне!
Выводы
В этой статье вы узнали, как встроенные инструменты Python используются для получения пользовательского ввода в разных форматах. Также научились обрабатывать исключения и ошибки, которые могут возникнуть в процессе.