Функция input() в Python3
input()Функция получает ввод пользователя из стандартного ввода (клавиатуры) и возвращаетстроковый тип (str)。
Примечание:
input()Независимо от того, что введено, возвращаемое значение всегда является строкой. Если требуются числовые вычисления, необходимо вручную выполнить преобразование типа (например,int()、float())。
Синтаксис функции
input([prompt])
Описание параметров:
- prompt:Необязательно, сообщение, приглашающее пользователя к вводу
Пример
input()Получает ввод пользователя и возвращает его в виде строки.
Базовое использование input()
Даже если введено число, возвращаемое значение всё равно является строкой.
Проблемы с типами (распространённые ошибки)
Примечание:Значения, полученные непосредственно с помощью input(), не могут участвовать в числовых вычислениях.
Неправильный пример:
>>> a = input("请输入数字:")
>>> print(a + 1)
TypeError: can only concatenate str (not "int") to str
Правильный подход:
>>> a = int(input("请输入数字:"))
>>> print(a + 1)
input() Получение нескольких значений
split()Разделяет ввод по пробелам на массив строк.
Пример
a, b, c = input("Пожалуйста, введите три числа:").split()
# Преобразование типов
a = int(a)
b = int(b)
c = int(c)
print(a, b, c)
Используйтеmap()позволяет выполнить преобразование типов за один шаг, делая код чище.
Рекомендуемый подход (для продвинутых)
a, b, c = map(int, input("Пожалуйста, введите три числа:").split())
print(a, b, c)
Практика: Вычисление площади треугольника
a, b, c = map(int, input("Пожалуйста, введите длины трёх сторон треугольника:").split())
# Вычислить полупериметр
p = (a + b + c) / 2
# Вычислить площадь по формуле Герона
s = (p * (p - a) * (p - b) * (p - c)) ** 0.5
print("Площадь треугольника равна:", format(s, '.2f'))
Результат выполнения:
请输入三角形三边的长:3 4 5 三角形面积为: 6.00
Сводка по типичному использованию
input("提示"): Ввод с приглашениемinput(): Ввод без приглашенияint(input()): Получить целое числоfloat(input()): Получить число с плавающей запятойinput().split(): Получение нескольких строкmap(int, input().split()): Получение нескольких целых чисел (рекомендуется)
Различия между Python2 и Python3
В Python2:
raw_input(): Возвращает строкуinput(): Выполняет выражение (есть риски безопасности)
В Python3:
- Оставлен только
input() - Единообразно возвращает строку — безопаснее и понятнее
Краткое резюме
Итог в одном предложении:
input() = 获取输入 + 返回字符串
- По умолчанию возвращает строку
- Необходимо преобразовывать типы при участии в вычислениях
- Для нескольких входных данных рекомендуется использовать split() + map()
Другие расширения
Встроенные функции Python3