How do I Input a String From the User in Python?
In Python, there are several ways to input a string from the user. The most common method is by using the built-in function input(). This function allows the user to enter a string, which is then stored as a variable for use in the program.
Here’s an example of how to input a string from the user in Python −
# Define a variable to store the input name = input("Please enter your name: ") # Print the input print("Hello, " + name + "! Good to see you.")
The above code generates the following output for us −
Please enter your name: Max Hello, Max! Good to see you.
In the code above, we have,
- Define a variable to store the input − name = input(«Please enter your name: «)
- In this step, a variable named «name» is created to store the input from the user.
- The «input()» function is used to display a message to the user, asking them to enter their name. The message, «Please enter your name: «, is passed as an argument to the function.
- The result of the «input()» function call is stored in the «name» variable. This means that the user’s input is now stored in the «name» variable, ready to be used.
- In this step, the «print()» function is used to display a message to the user, using the value stored in the «name» variable. The message, «Hello, [name]! Good to see you.», is passed as an argument to the function. The value of «name» is concatenated with the rest of the string using the «+» operator.
It’s crucial to remember that the output of the «input()» function will always be a string, even if the user enters a numerical value. If you need to use the input as a number, you’ll need to convert it to the appropriate data type (e.g. int or float).
Here’s an example of how to input a number from the user −
# Define a variable to store the input age = int(input("Please enter your age: ")) # Print the input print("Wow, you are " + str(age) + " years old!")
The above code generates the following output for us −
Please enter your age: 24 Wow, you are 24 years old!
- A variable named «age» is created to store the input from the user.
- The message, «Please enter your age: «, is passed as an argument to the function.
- Since the «input()» function always returns a string, we need to convert the user’s input to an integer using the «int()» function. This allows us to store the user’s input as a number, rather than a string.
- The result of the «int()» function call is stored in the «age» variable.
- The «print()» function is used to display a message to the user, using the value stored in the «age» variable. The message, «Wow, you are [age] years old!», is passed as an argument to the function. The value of «age» is first converted to a string using the «str()» function and then concatenated with the rest of the string using the «+» operator.
It’s also possible to assign a default value to the input, in case the user doesn’t provide any input. This can be done using the «or» operator and a default value −
Example
# Define a variable to store the input name = input("Please enter your name (or press enter for default): ") or "Max" # Print the input print("Hello, " + name + "! Good to see you.")
The above code generates the following output for us −
Please enter your name (or press enter for default): Hello, Max! Good to see you.
- A variable named «name» is created to store the name input by the user.
- The message, «Please enter your name (or press enter for default) − «, is passed as an argument to the function.
- The or operator is used to set a default value for the name variable. If the user presses enter without entering a name, the input() function will return an empty string. If the user’s input is an empty string, the or operator will evaluate to the default value, «Max».
- The result of the input() function call, or the default value «Max» is stored in the name variable.
- A personalized greeting is printed, using the name variable. The + operator is used to concatenate the string values, creating a single string to be printed.
Conclusion
To summarize, receiving a string from a user in Python is a simple task that can be accomplished by making use of the readily available «input()» method. Regardless of whether you need to collect a string or a numerical value, it is effortless to convert the input into a suitable data type and save it in a variable for future reference.
The «input()» method is a convenient tool for obtaining information from a user and storing it for later use in your code.
Получение пользовательского ввода в 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 используются для получения пользовательского ввода в разных форматах. Также научились обрабатывать исключения и ошибки, которые могут возникнуть в процессе.