Функции print и input в Python: полное руководство
Функции print и input являются основными инструментами для взаимодействия с пользователем в Python. Они позволяют выводить информацию на экран и получать данные от пользователя, что делает программы интерактивными и удобными.
Функция print: вывод данных на экран
Функция print() предназначена для вывода информации на экран. Она принимает любое количество аргументов и отображает их с автоматическим разделением пробелами.
Базовый синтаксис и примеры:
# Простой вывод текста
print("Hello, world!") # Hello, world!
# Вывод нескольких аргументов
print("Name:", "Alice", "Age:", 30) # Name: Alice Age: 30
# Вывод переменных
name = "Bob"
age = 25
print("User:", name, "is", age, "years old")
Дополнительные параметры функции print:
Параметр sep позволяет изменить разделитель между элементами:
print("apple", "banana", "orange", sep=", ") # apple, banana, orange
print("2024", "12", "15", sep="-") # 2024-12-15
Параметр end определяет символ окончания строки:
print("Hello, ", end="")
print("world!") # Hello, world!
print("Loading", end="...")
print("Done!") # Loading...Done!
Форматирование строк:
F-строки (f-strings) - современный способ форматирования:
name = "Alice"
age = 30
salary = 50000.50
print(f"Меня зовут {name}, мне {age} лет")
print(f"Моя зарплата: {salary:.2f} рублей")
Метод format():
print("Имя: {}, Возраст: {}".format(name, age))
print("Имя: {name}, Возраст: {age}".format(name=name, age=age))
Функция input: получение данных от пользователя
Функция input() запрашивает ввод данных от пользователя и всегда возвращает строку (str). Для работы с числами необходимо явное преобразование типов.
Базовые примеры использования:
# Простой ввод
name = input("Введите ваше имя: ")
print(f"Привет, {name}!")
# Ввод с преобразованием в число
age = int(input("Введите ваш возраст: "))
print(f"Вам {age} лет")
# Ввод с преобразованием в float
height = float(input("Введите ваш рост в метрах: "))
print(f"Ваш рост: {height} м")
Обработка ошибок при вводе:
try:
number = int(input("Введите число: "))
print(f"Вы ввели: {number}")
except ValueError:
print("Ошибка: введите корректное число")
Ввод нескольких значений с помощью split()
Метод split() позволяет разделить строку на части и получить несколько значений одновременно:
# Ввод двух чисел в одной строке
numbers = input("Введите два числа через пробел: ")
num1, num2 = numbers.split()
num1 = float(num1)
num2 = float(num2)
print(f"Сумма: {num1 + num2}")
# Краткая форма записи
num1, num2 = map(float, input("Введите два числа: ").split())
print(f"Произведение: {num1 * num2}")
Практический пример - калькулятор:
# Запрос данных от пользователя
values = input("Введите три числа через пробел: ")
a, b, c = map(float, values.split())
# Вычисления
sum_result = a + b + c
average = sum_result / 3
# Вывод результатов
print(f"Числа: {a}, {b}, {c}")
print(f"Сумма: {sum_result}")
print(f"Среднее арифметическое: {average:.2f}")
Типы данных в Python
Python поддерживает различные типы данных, которые можно разделить на простые и составные. Понимание типов данных критически важно для правильной работы с функциями input и print.
Простые типы данных
Целые числа (int):
positive_num = 42
negative_num = -17
zero = 0
print(type(positive_num)) # <class 'int'>
print(f"Значение: {positive_num}")
Вещественные числа (float):
pi = 3.14159
temperature = -10.5
scientific = 1.5e-4 # 0.00015
print(type(pi)) # <class 'float'>
print(f"Число π ≈ {pi}")
Логический тип (bool):
is_student = True
is_working = False
print(type(is_student)) # <class 'bool'>
print(f"Статус студента: {is_student}")
Строки (str):
single_quotes = 'Привет, мир!'
double_quotes = "Hello, World!"
multiline = """Это многострочная
строка в Python"""
print(type(single_quotes)) # <class 'str'>
print(f"Длина строки: {len(single_quotes)}")
Преобразование типов данных
Преобразование типов (type casting) необходимо для корректной работы с данными, особенно при использовании функции input.
Основные функции преобразования:
# Преобразование в строку
number = 100
text = str(number)
print(f"Число как строка: '{text}'")
# Преобразование в целое число
text_number = "42"
integer = int(text_number)
print(f"Строка как число: {integer}")
# Преобразование в float
decimal_text = "3.14"
decimal = float(decimal_text)
print(f"Десятичное число: {decimal}")
# Преобразование в bool
print(bool(1)) # True
print(bool(0)) # False
print(bool("")) # False
print(bool("text")) # True
Динамическое изменение типа переменной:
variable = 10 # int
print(f"Тип: {type(variable)}, значение: {variable}")
variable = str(variable) # str
print(f"Тип: {type(variable)}, значение: '{variable}'")
variable = float(variable) # float
print(f"Тип: {type(variable)}, значение: {variable}")
Библиотека math: расширенные математические функции
Модуль math предоставляет доступ к математическим функциям и константам, определенным в стандарте C.
Импорт и основные константы:
import math
# Основные константы
print(f"π = {math.pi}") # 3.141592653589793
print(f"e = {math.e}") # 2.718281828459045
print(f"τ = {math.tau}") # 6.283185307179586 (2π)
print(f"∞ = {math.inf}") # inf
print(f"NaN = {math.nan}") # nan
Функции округления и целочисленные операции:
import math
x = 4.7
y = -3.2
print(f"ceil({x}) = {math.ceil(x)}") # 5 (вверх)
print(f"floor({x}) = {math.floor(x)}") # 4 (вниз)
print(f"trunc({y}) = {math.trunc(y)}") # -3 (к нулю)
# Факториал и НОД
print(f"5! = {math.factorial(5)}") # 120
print(f"НОД(48, 18) = {math.gcd(48, 18)}") # 6
Степенные и логарифмические функции:
import math
# Степенные функции
print(f"√16 = {math.sqrt(16)}") # 4.0
print(f"2³ = {math.pow(2, 3)}") # 8.0
print(f"∛27 = {math.pow(27, 1/3)}") # 3.0
# Логарифмы
print(f"log₁₀(100) = {math.log10(100)}") # 2.0
print(f"ln(e) = {math.log(math.e)}") # 1.0
print(f"log₂(8) = {math.log2(8)}") # 3.0
Тригонометрические функции:
import math
angle = math.pi / 4 # 45 градусов в радианах
print(f"sin(45°) = {math.sin(angle):.3f}") # 0.707
print(f"cos(45°) = {math.cos(angle):.3f}") # 0.707
print(f"tan(45°) = {math.tan(angle):.3f}") # 1.000
# Преобразование градусов в радианы и обратно
degrees = 90
radians = math.radians(degrees)
print(f"{degrees}° = {radians} рад")
print(f"{radians} рад = {math.degrees(radians)}°")
Практические примеры программ
Пример 1: Расчет площади и периметра прямоугольника
import math
# Ввод данных
length = float(input("Введите длину прямоугольника: "))
width = float(input("Введите ширину прямоугольника: "))
# Вычисления
area = length * width
perimeter = 2 * (length + width)
diagonal = math.sqrt(length**2 + width**2)
# Вывод результатов
print(f"Площадь: {area:.2f}")
print(f"Периметр: {perimeter:.2f}")
print(f"Диагональ: {diagonal:.2f}")
Пример 2: Конвертер температур
# Ввод температуры
celsius = float(input("Введите температуру в градусах Цельсия: "))
# Преобразования
fahrenheit = (celsius * 9/5) + 32
kelvin = celsius + 273.15
# Вывод результатов
print(f"{celsius}°C = {fahrenheit:.1f}°F")
print(f"{celsius}°C = {kelvin:.1f}K")
Пример 3: Решение квадратного уравнения
import math
print("Решение квадратного уравнения ax² + bx + c = 0")
# Ввод коэффициентов
a = float(input("Введите коэффициент a: "))
b = float(input("Введите коэффициент b: "))
c = float(input("Введите коэффициент c: "))
# Проверка и вычисление дискриминанта
if a == 0:
print("Это не квадратное уравнение (a = 0)")
else:
discriminant = b**2 - 4*a*c
print(f"Дискриминант: {discriminant}")
if discriminant > 0:
x1 = (-b + math.sqrt(discriminant)) / (2*a)
x2 = (-b - math.sqrt(discriminant)) / (2*a)
print(f"Два корня: x₁ = {x1:.3f}, x₂ = {x2:.3f}")
elif discriminant == 0:
x = -b / (2*a)
print(f"Один корень: x = {x:.3f}")
else:
print("Корней нет (дискриминант отрицательный)")
Советы по оптимизации и лучшие практики
- Всегда проверяйте пользовательский ввод на корректность типов данных
- Используйте f-строки для современного форматирования вывода
- Импортируйте только нужные функции из math для экономии памяти:
from math import sqrt, pi - Добавляйте описательные подсказки в функции input для лучшего UX
- Округляйте результаты до разумного количества знаков после запятой
Освоение функций print и input, понимание типов данных и использование библиотеки math создают прочную основу для создания интерактивных Python-программ любой сложности.