Стандартный ввод-вывод в Python: от простых к расширенным сценариям

Раздел: Основы Python -> Файловый ввод-вывод

Основные функции ввода-вывода

Как организовать ввод данных с клавиатуры и вывод на экран в Python?

Наиболее эффективный способ - использовать встроенные функции input() и print(). input() считывает строку из стандартного потока ввода (обычно клавиатура), необязательно с приглашением. print() выводит данные в стандартный поток вывода (экран).

name = input("Введите имя: ")
print("Привет,", name)

ввод программ на python (ввод данных в программе python)

Пояснение: input() принимает строку-приглашение, выводит его, ждет ввода и возвращает введенную строку. print() выводит аргументы, разделяя пробелом и добавляя перевод строки.

Типичные ошибки:

  • Забыть преобразовать строку в число. Например, age = input("Возраст: ") - строка. Для вычислений нужно int(age).
  • Использовать print без скобок в Python 3 - SyntaxError.
  • Путать input() и raw_input() (устарело).

Как ввести несколько значений за один раз?

Метод строки split() позволяет разделить ввод на части. Пример:

a, b = input("Введите два числа через пробел: ").split()
print("Сумма:", int(a) + int(b))

Python file io (ввод-вывод файлов в python)

Проблема: если пользователь введет неверное количество или нечисловые значения, возникнет ошибка. Решение - использовать try-except.

Ошибки: ValueError при недостаточном количестве значений или неверном типе. Рекомендуется проверять.

Как прочитать многострочный ввод до окончания?

Модуль sys предоставляет доступ к потоку stdin. Чтение всех строк до EOF:

import sys
data = sys.stdin.read()
print("Введено:", repr(data))

Python temp files (временные файлы в python)

Этот способ полезен при перенаправлении ввода из файла или пайпов.

Ошибка забыть импортировать sys. Также read() читает все, включая символы новой строки.

Как выводить данные в файл вместо экрана?

Параметр file функции print указывает поток вывода:

with open("output.txt", "w") as f:
    print("Строка для файла", file=f)

Python index files (индексация файлов в python)

Аналогично можно перенаправить sys.stdout.

Как ввести данные с проверкой типа?

Использование try-except для безопасного преобразования:

while True:
    try:
        n = int(input("Введите целое число: "))
        break
    except ValueError:
        print("Ошибка: введите целое число")

File python class (класс для работы с файлами в python)

Цель: избежать аварийного завершения программы.

Как использовать ввод из командной строки (аргументы)?

Модуль argparse или sys.argv. Пример с sys.argv:

import sys
if len(sys.argv) > 1:
    print("Привет,", sys.argv[1])
else:
    print("Аргументы не указаны")

Запуск: python script.py Вася

- Python copy file (копирование файла в python)
- Python log file (логирование в файл в python)
- Python file methods (методы работы с файлами в python)

Расширенные примеры и сценарии использования

Пример 1: Ввод чисел с плавающей точкой и обработка ошибок.

Пример
def get_float(prompt):
    while True:
        try:
            return float(input(prompt))
        except ValueError:
            print("Ошибка: введите число с точкой")

x = get_float("Введите первое число: ")
y = get_float("Введите второе число: ")
print(f"Результат: {x + y}")
Введите первое число: 3.5
Введите второе число: 2.1
Результат: 5.6

Пример 2: Чтение чисел из файла и вывод суммы.

Пример
with open("numbers.txt", "r") as f:
    total = 0
    for line in f:
        total += int(line.strip())
print("Сумма чисел:", total)
Содержимое numbers.txt:
10
20
30
Вывод: Сумма чисел: 60

Пример 3: Считывание аргументов командной строки через argparse (с именованными параметрами).

Пример
import argparse
parser = argparse.ArgumentParser(description="Программа приветствия")
parser.add_argument("name", help="имя пользователя")
parser.add_argument("--greeting", default="Здравствуйте", help="приветствие")
args = parser.parse_args()
print(f"{args.greeting}, {args.name}!")
Запуск: python greet.py --greeting Привет Иван
Вывод: Привет, Иван!

Пример 4: Использование input() для интерактивного меню.

Пример
options = {"1": "Показать справку", "2": "Выход"}
while True:
    print("Меню:")
    for key, val in options.items():
        print(f"{key}. {val}")
    choice = input("Выберите опцию: ")
    if choice == "1":
        print("Это справка.")
    elif choice == "2":
        break
    else:
        print("Неверный выбор")
Меню:
1. Показать справку
2. Выход
Выберите опцию: 1
Это справка.
Меню:
1. Показать справку
2. Выход
Выберите опцию: 2

Пример 5: Перенаправление stdin из файла при запуске скрипта.

Пример
# script.py
for line in sys.stdin:
    print("Прочитано:", line.strip())
Команда: python script.py < input.txt
Результат:
Прочитано: строка1
Прочитано: строка2

Пример 6: Вывод с форматированием f-строк, параметры sep и end.

Пример
print("a", "b", "c", sep="-", end="!\n")
a-b-c!

Пример 7: Пакетный ввод через split с несколькими разделителями.

Пример
import re
values = re.split(r"[,\s]+", input("Введите числа через запятую или пробел: "))
numbers = [int(v) for v in values]
print("Список чисел:", numbers)
Введите числа через запятую или пробел: 10, 20 30
Список чисел: [10, 20, 30]

Ввод с клавиатуры в Python - comments

En
вывод с клавиатуры python (python)