Python — универсальный язык программирования для веб-приложений, игр, машинного обучения и многих других областей. Он популярен во всем мире. В этой статье мы расскажем, как вводить данные в Python и какие инструменты использовать. Разберемся как это работает на примере реального кода.
Ввод это когда вы говорите программе сколько яблок берёт Петя, или скольки равен X, или же какой квадратик из трёх мы выберем.
В Python для этого существует одноименное слово, только на английском.
Для ее запуска не нужно танцевать с бубном, что-то докачивать и устанавливать. Установленного питона и запущенной среды разработки будет достаточно.
phrase = input("Мой первый ввод будет здесь: ")
Если вкратце: программа хочет себя обезопасить от фатальных ошибок.
Так как вы может быть скажете, что хотите ввести число, а пользователь введёт букву “Н” - и вот какая это цифра❓
Поэтому ввод лучше сделать строкой, так как там можно и цифры и строки. И тогда условный ввод “Dominator777” или “Семь Над цать” не поломает нам программу.
celoeChislo = int(input("Введи число: ")) # целое число (например 10, 0, -33)
Поскольку целое число как тип данных это int(сокр. Integer), то механизм здесь в том, что мы переводим полученный ввод в числовой тип данных.
neCeloeChislo = float(input("Введи число: ")) # дробное число (например 10.3, 0.0, -33.994)
Аналогичная история с дробными числами.
В качестве решения можно воспользоваться методом строки .split()
.
naborSlov = input("Введи фразу: ").split() # полученную фразу раскалываем по пробелу (.split() по умолчанию разделяет по пробелам)
# То есть при таком вводе: "Питон это круто и несложно",
# Мы получим это: ['Питон', 'это', 'круто', 'и', 'несложно']
naborSlov = input("Введи фразу: ").split(", ") # полученную фразу раскалываем по запятым и убирает пробел после запятой
# То есть при таком вводе: "Кирилл, Данил, Антон",
# Мы получим это: ['Кирилл', ' Данил', ' Антон']
Булевый тип имеет только одно из двух состояний:
Сперва важно понять одну вещь при работе с булевым типом данных. Все что не пустота, то правда:
isEnter = input("Всё или ничего: ")
if isEnter:
print("Пользователь что-то ввёл!")
Такой код выведет "Пользователь что-то ввёл!" только если было хоть что-то введено пользователем.
Что если мы хотим спросить несколько переменных сразу?
Например, чтобы не писать так:
x = input("x: ")
y = input("y: ")
z = input("z: ")
Можно написать так:
x, y, z = input("x: "), input("y: "), input("z: ")
Но можно пойти дальше, и разбить одно значение сразу на несколько:
word1, word2, word3 = input("Введи три слова: ").split() # при вводе "Питон это круто"
print(f"w1={word1}, w2={word2}, w3={word3}") # получим w1=Питон, w2=это, w3=круто
И на выходе мы и получим такую строку, со всеми её пробелами.
Починить этот потенциальный баг нам поможет метод .strip()
— убирает символы справа и слева строки.
clearedPhrase = input("Как тебя зовут, путник? > ").strip()
# Пользователь ввел: “ Подкрадули “
# Мы получим: “Подкрадули“
Да, по умолчанию убираются пробелы справа и слева.
Также мы можем убирать несколько символов сразу. Как? Указать их поштучно в кавычках.
clearedPhrase = input("Как тебя зовут, путник? > ").strip("-+! ") # p.s. не забываем перечислить и пробел!
# Пользователь ввел: “ -+Подкрадули?! “
# Мы получим: “Подкрадули?“
Также мы можем убирать с правой части при помощи .rstrip()
; и с левой при помощи .lstrip()
.
Круто это всё, но как это применить? Как супер удобный способ получить положительное число в случае необходимости.
positive = input("Ты мне число, а я тебе модуль: ") # если ввели ----321
print(positive.lstrip("-")) # то мы выведем 321
А также для процесса валидации, но об этом позже.
Банальный пример: пока значение неверное, спрашивать у игрока новое значение.
Зачем это может нам потребоваться? Например мы хотим получить число.
x = int(input("Введи число: ")) # полученную строку переводим в число при помощи команды int()
Но как можно предположить, если пользователь напишет “Семь Егоров”, то мы не сможем перевести это в число. Столкнувшись с чем-то красным и фатальным. Ошибкой…
Но мы можем эту фатальную ошибку отловить и обработать при помощи try
и except.
while True: # бесконечный цикл. остановим тогда, когда получим корректное значени
try: # попытаемся выполнить следующие строки кода:
x = int(input("Введи число: "))
break # выйдем из цикла, если в строке выше не стокнулись с ошибкой
except ValueError: # Исключение класса ValueError возникает как раз в таких ситуациях, когда неверное значение подаётся для действия
print("Пожалуйста, впиши число(из цифр).") # Выполнится в том случае, если была фатальная ошибка с исключением ValueError</code>
8 оценок, среднее 4.12 из 5