Ввод данных в Python

From Викижурнал
Jump to: navigation, search
Ввод данных в Python
Ввод данных в Python
Портал ПрограммистовПортал Python

Большинство программ написано для решения проблемы конечного пользователя, но для этого обычно требуется получить какую-либо информацию от него. Например, выяснить когда родился пользователь, чтобы понять, может ли он голосовать. Если создать программу для решения этой задачи, необходимо знать возраст пользователя, прежде чем вывести результат. Программа должна будет запросить у пользователя ввести данные о его возрасте или дате рождения. Как только программа получит эти данные, она сможет сравнить их с допустимым возрастом голосования и затем сообщить результат.

В этой главе вы узнаете, как принимать данные от пользователя, чтобы далее программа могла с работать с этой информацией. Когда программе нужно имя, вы сможете запросить у пользователя его. Когда вашей программе нужен список имен, вы сможете запросить у пользователя эти данные. Чтобы всё это сделать, необходимо использовать функцию input().

Имея возможность работать с пользовательскими данными и контролировать продолжительность работы ваших программ, можно полностью создавать интерактивные программы, взаимодействующие с пользователями.

Работа с пользовательскими данными

Функция input() приостанавливает программу и ожидает, пока пользователь введет какой-то текст. Как только Python получает данные от пользователя, он сохраняет их в переменной, чтобы было удобно с ними работать в дальнейшем. Например, следующая программа запрашивает у пользователя некоторый текст, а затем отображает это сообщение пользователю:

message = input("Tell me something, and I will repeat it back to you: ")
print(message)

Функция input () принимает один аргумент: подсказку или инструкции, которые мы хотим отобразить пользователю, чтобы они знали, что делать. В этом примере, когда Python запускает первую строку, пользователь видит подсказку "Tell me something, and I will repeat it back to you: ". Программа ждет, пока пользователь введет свой ответ, и продолжит работу после того, как пользователь нажмет ввод, ответ сохраняется в переменной "message", затем print(message) выводит введённую пользователем информацию:

Tell me something, and I will repeat it back to you: Hello everyone!
Hello everyone!

Написание понятных подсказок

Каждый раз, когда вы используете функцию input (), необходимо включать в себя четкую и понятную подсказку, инструкцию пользователю, какую информацию ему необходимо ввести. Например:

name = input("Please enter your name: ")
print("Hello, " + name + "!")

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

Please enter your name: Eric
Hello, Eric!

Иногда написать написать инструкцию длиной более одной строки. Например, вы можете пояснить пользователю, почему вы запрашиваете определенные данные. Можно сохранить такой текст в переменной и передать эту переменную в функцию input(). Это позволяет создать подсказку из нескольких строк, а затем написать чистую инструкцию input():

prompt = "If you tell us who you are, we can personalize the messages you see."
prompt += "\nWhat is your first name? "

name = input(prompt)
print("\nHello, " + name + "!")

Использование int () для принятия числового ввода

Когда вы используете функцию input(), Python интерпретирует все, что пользователь вводит в виде строки, а не числовых значений. Рассмотрим следующий пример, который запрашивает возраст пользователя:

age = input("How old are you? ")
print(age)

Например, пользователь вводит число 21, но когда мы запрашиваем у Python значение age, он возвращает «21» в виде строки, а не числового значения, потому что число теперь заключено в кавычки. Если все, что вы хотите сделать, это распечатать ввод, это работает хорошо. Но если вы попытаетесь использовать ввод как число, и работать с ним с логическими операциями вы получите ошибку. Чтобы избежать такой ошибки, нужно при помощи функции перевести это значение в число, это сделать можно разными способами, например провести переменную в число:

age = input("How old are you? ")
age = int(age)
print(age)

Или можно совсем упростить код и функцию ввода провести через функцию int():

age = int(input("How old are you? "))
print(age)

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

age = int(input("How old are you? "))
print("Your age in months is", age*12)

Введём возраст 36 лет и получим соответсвующий результат:

How old are you? 36
Your age in months is 432

Заключение

В этой главе мы поняли, как можно использовать функцию ввода, для того, чтобы наши программы были интерактивными и можно было бы взаимодействовать с пользователями. Это базовый пример, как это всё используется. В дальнейших статьях покажем более сложные примеры. Если остались комментарии, вопросы, то оставляйте свои сообщения на странице обсуждения этой статьи.

Другие статьи о Python