Як вставити текст у ПітонЯк вставити текст у Пітон

0 Comment

Получение пользовательского ввода в 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 используются для получения пользовательского ввода в разных форматах. Также научились обрабатывать исключения и ошибки, которые могут возникнуть в процессе.

Підручник з Python¶

Python — це потужна мова програмування, яка проста у вивченні. Він має ефективні структури даних високого рівня та простий, але ефективний підхід до об’єктно-орієнтованого програмування. Елегантний синтаксис і динамічна типізація Python разом з його інтерпретованим характером роблять його ідеальною мовою для створення сценаріїв і швидкої розробки додатків у багатьох сферах на більшості платформ.

Інтерпретатор Python і обширна стандартна бібліотека доступні у вихідному або двійковому вигляді для всіх основних платформ на веб-сайті Python https://www.python.org/ і можуть вільно поширюватися. Цей же сайт також містить дистрибутиви та вказівники на багато безкоштовних сторонніх модулів Python, програм і інструментів, а також додаткову документацію.

Інтерпретатор Python легко розширюється за допомогою нових функцій і типів даних, реалізованих у C або C++ (або інших мовах, які можна викликати з C). Python також підходить як мова розширення для настроюваних програм.

Цей підручник неформально знайомить читача з основними концепціями та функціями мови та системи Python. Вам допоможе мати під рукою інтерпретатор Python для практичного досвіду, але всі приклади є самодостатніми, тому підручник також можна читати офлайн.

Опис стандартних об’єктів і модулів див. Стандартна бібліотека Python . Довідник з мови Python дає більш формальне визначення мови. Щоб написати розширення на C або C++, прочитайте Розширення та вбудовування інтерпретатора Python і Довідковий посібник з API Python/C . Є також кілька книг, які детально описують Python.

Цей підручник не намагається бути вичерпним і охопити кожну окрему функцію чи навіть кожну функцію, що часто використовується. Натомість він представляє багато найбільш вартих уваги функцій Python і дасть вам гарне уявлення про смак і стиль мови. Прочитавши його, ви зможете читати та писати модулі та програми Python, а також будете готові дізнатися більше про різні модулі бібліотеки Python, описані в Стандартна бібліотека Python .

  • 1. Розпалювання апетиту
  • 2. Використання інтерпретатора Python
    • 2.1. Виклик Інтерпретатора
      • 2.1.1. Передача аргументу
      • 2.1.2. Інтерактивний режим
      • 2.2.1. Кодування вихідного коду
      • 3.1. Використання Python як калькулятора
        • 3.1.1. Числа
        • 3.1.2. Text
        • 3.1.3. списки
        • 4.1. if Інструкції
        • 4.2. for Заяви
        • 4.3. Функція range()
        • 4.4. break і continue Інструкції та else пропозиції циклів
        • 4.5. pass Інструкції
        • 4.6. match Інструкції
        • 4.7. Визначення функцій
        • 4.8. Докладніше про визначення функцій
          • 4.8.1. Значення аргументів за замовчуванням
          • 4.8.2. Аргументи ключових слів
          • 4.8.3. Спеціальні параметри
            • 4.8.3.1. Позиційні або ключові аргументи
            • 4.8.3.2. Лише позиційні параметри
            • 4.8.3.3. Аргументи лише за ключовими словами
            • 4.8.3.4. Приклади функцій
            • 4.8.3.5. Підведення підсумків
            • 5.1. Більше про списки
              • 5.1.1. Використання списків як стеків
              • 5.1.2. Використання списків як черг
              • 5.1.3. Розуміння списку
              • 5.1.4. Розуміння вкладених списків
              • 6.1. Детальніше про модулі
                • 6.1.1. Виконання модулів у вигляді скриптів
                • 6.1.2. Шлях пошуку модуля
                • 6.1.3. «Компільовані» файли Python
                • 6.4.1. Імпортування * з пакету
                • 6.4.2. Внутрішньопакетні посилання
                • 6.4.3. Пакунки в кількох каталогах
                • 7.1. Вишуканіше форматування виводу
                  • 7.1.1. Відформатовані рядкові літерали
                  • 7.1.2. Метод String format().
                  • 7.1.3. Ручне форматування рядка
                  • 7.1.4. Старе форматування рядка
                  • 7.2.1. Методи файлових об’єктів
                  • 7.2.2. Збереження структурованих даних за допомогою json
                  • 8.1. Синтаксичні помилки
                  • 8.2. Винятки
                  • 8.3. Обробка винятків
                  • 8.4. Створення винятків
                  • 8.5. З’єднання винятків
                  • 8.6. Винятки, визначені користувачем
                  • 8.7. Визначення дій з очищення
                  • 8.8. Попередньо визначені дії з очищення
                  • 8.9. Raising and Handling Multiple Unrelated Exceptions
                  • 8.10. Enriching Exceptions with Notes
                  • 9.1. Слово про імена та предмети
                  • 9.2. Області та простори імен Python
                    • 9.2.1. Приклад областей і просторів імен
                    • 9.3.1. Синтаксис визначення класу
                    • 9.3.2. Об’єкти класу
                    • 9.3.3. Об’єкти екземпляра
                    • 9.3.4. Об’єкти методу
                    • 9.3.5. Змінні класу та екземпляра
                    • 9.5.1. Множинне успадкування
                    • 10.1. Інтерфейс операційної системи
                    • 10.2. Символи підстановки файлів
                    • 10.3. Аргументи командного рядка
                    • 10.4. Перенаправлення виводу помилки та завершення програми
                    • 10.5. Відповідність шаблону рядка
                    • 10.6. Математика
                    • 10.7. Доступ в інтернет
                    • 10.8. Дати та час
                    • 10.9. Стиснення даних
                    • 10.10. Вимірювання ефективності
                    • 10.11. Контроль якості
                    • 10.12. Батарейки в комплекті
                    • 11.1. Форматування виводу
                    • 11.2. шаблонування
                    • 11.3. Робота з макетами записів двійкових даних
                    • 11.4. Багатопотоковість
                    • 11.5. Лісозаготівля
                    • 11.6. Слабкі посилання
                    • 11.7. Інструменти для роботи зі списками
                    • 11.8. Десяткова арифметика з плаваючою комою
                    • 12.1. вступ
                    • 12.2. Створення віртуальних середовищ
                    • 12.3. Керування пакетами за допомогою pip
                    • 14.1. Доповнення вкладок і редагування історії
                    • 14.2. Альтернативи інтерактивному інтерпретатору
                    • 15.1. Помилка представлення
                    • 16.1. Інтерактивний режим
                      • 16.1.1. Обробка помилок
                      • 16.1.2. Виконувані скрипти Python
                      • 16.1.3. Інтерактивний файл запуску
                      • 16.1.4. Модулі налаштування

                      2. Використання інтерпретатора Python¶

                      The Python interpreter is usually installed as /usr/local/bin/python3.12 on those machines where it is available; putting /usr/local/bin in your Unix shell’s search path makes it possible to start it by typing the command:

                      до оболонки. [ 1 ] Оскільки вибір каталогу, де знаходиться інтерпретатор, є опцією встановлення, можливі інші місця; зверніться до місцевого гуру Python або системного адміністратора. (Наприклад, /usr/local/python є популярним альтернативним розташуванням.)

                      On Windows machines where you have installed Python from the Microsoft Store , the python3.12 command will be available. If you have the py.exe launcher installed, you can use the py command. See Екскурс: Встановлення змінних середовища for other ways to launch Python.

                      Введення символу кінця файлу ( Control – D в Unix, Control – Z в Windows) у первинному запиті призводить до виходу інтерпретатора з нульовим статусом виходу. Якщо це не спрацює, ви можете вийти з інтерпретатора, ввівши таку команду: quit() .

                      Функції рядкового редагування інтерпретатора включають інтерактивне редагування, заміну історії та завершення коду в системах, які підтримують бібліотеку GNU Readline. Можливо, найшвидший спосіб перевірити, чи підтримується редагування командного рядка, це ввести Control – P у перше запрошення Python, яке ви отримаєте. Якщо він подає звуковий сигнал, у вас є редагування командного рядка; дивіться Додаток Інтерактивне редагування введення та заміна історії для ознайомлення з ключами. Якщо нічого не відбувається або відображається ^P , редагування командного рядка недоступне; Ви зможете використовувати клавішу Backspace лише для видалення символів із поточного рядка.

                      Інтерпретатор працює дещо подібно до оболонки Unix: при виклику зі стандартним введенням, підключеним до пристрою tty, він читає та виконує команди в інтерактивному режимі; при виклику з аргументом імені файлу або з файлом як стандартним введенням він читає та виконує сценарій із цього файлу.

                      A second way of starting the interpreter is python -c command [arg] . , which executes the statement(s) in command, analogous to the shell’s -c option. Since Python statements often contain spaces or other characters that are special to the shell, it is usually advised to quote command in its entirety.

                      Деякі модулі Python також корисні як сценарії. Їх можна викликати за допомогою python -m module [arg] . , яка виконує вихідний файл для module так, ніби ви ввели його повне ім’я в командному рядку.

                      Коли використовується файл сценарію, іноді корисно мати можливість запустити сценарій і перейти в інтерактивний режим після цього. Це можна зробити, передавши -i перед сценарієм.

                      Усі параметри командного рядка описані в Командний рядок і середовище .

                      2.1.1. Передача аргументу¶

                      Якщо ім’я сценарію та додаткові аргументи відомі інтерпретатору, вони перетворюються на список рядків і призначаються змінній argv у модулі sys . Ви можете отримати доступ до цього списку, виконавши import sys . Довжина списку принаймні одна; якщо сценарій і аргументи не задані, sys.argv[0] є порожнім рядком. Якщо ім’я сценарію вказано як ‘-” (що означає стандартний ввід), sys.argv[0] має значення ‘-‘ . Коли -c команда використовується, sys.argv[0] має значення ‘-c’ . Коли -m module використовується, sys.argv[0] встановлюється на повну назву розташованого модуля. Параметри, знайдені після -c command або -m module, не використовуються обробкою параметрів інтерпретатора Python, а залишаються в sys.argv для обробки команди або модуля .

                      2.1.2. Інтерактивний режим¶

                      Коли команди читаються з tty, кажуть, що інтерпретатор перебуває в інтерактивному режимі. У цьому режимі він запитує наступну команду за допомогою основного підказки, як правило, трьох знаків «більше» ( >>> ); для рядків продовження він запитує другорядним запитом, за замовчуванням три крапки ( . ). Інтерпретатор друкує вітальне повідомлення із зазначенням номера версії та повідомлення про авторські права перед друком першого запиту:

                      $ python3.12 Python 3.12 (default, April 4 2022, 09:25:04) [GCC 10.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 

                      Під час введення багаторядкової конструкції потрібні рядки продовження. Як приклад, подивіться на цей оператор if :

                      >>> the_world_is_flat = True >>> if the_world_is_flat: . print("Be careful not to fall off!") . Be careful not to fall off! 

                      Щоб дізнатися більше про інтерактивний режим, перегляньте Інтерактивний режим .

                      2.2. Інтерпретатор і його середовище¶

                      2.2.1. Кодування вихідного коду¶

                      За замовчуванням вихідні файли Python розглядаються як закодовані в UTF-8. У цьому кодуванні символи більшості мов світу можуть використовуватися одночасно в рядкових літералах, ідентифікаторах і коментарях — хоча стандартна бібліотека використовує лише символи ASCII для ідентифікаторів, угоду, якої повинен дотримуватися будь-який портативний код. Щоб правильно відобразити всі ці символи, ваш редактор має розпізнати, що файл має UTF-8, і він має використовувати шрифт, який підтримує всі символи у файлі.

                      Щоб оголосити кодування, відмінне від кодування за замовчуванням, слід додати спеціальний рядок коментаря як перший рядок файлу. Синтаксис такий:

                      де кодування є одним із дійсних codecs , які підтримуються Python.

                      Наприклад, щоб оголосити, що потрібно використовувати кодування Windows-1252, перший рядок вашого файлу вихідного коду має бути:

                      Одним винятком із правила першого рядка є випадки, коли вихідний код починається з рядка UNIX «shebang» . У цьому випадку оголошення кодування має бути додано як другий рядок файлу. Наприклад:

                      #!/usr/bin/env python3 # -*- coding: cp1252 -*- 

                      В Unix інтерпретатор Python 3.x за замовчуванням не встановлюється з виконуваним файлом під назвою python , тому він не конфліктує з одночасно встановленим виконуваним файлом Python 2.x.

                      Table of Contents