Menu
Coddy logo textTech

Чтение ввода через readline()

Часть раздела Основы путешествия по R на Coddy — урок 29 из 78.

До сих пор вы учились выводить данные. Теперь пришло время сделать ваши программы интерактивными, считывая ввод от пользователя. Функция readline() позволяет вам захватывать то, что вводит пользователь.

name <- readline()
cat("Hello,", name, "\n")

Когда этот код выполняется, R ожидает, пока пользователь что-нибудь введет и нажмет Enter. Все, что он введет, сохраняется в переменной name. Если пользователь введет "Alice", результатом будет: Hello, Alice

Важный момент: readline() всегда возвращает строку символов, даже если пользователь вводит число. Если кто-то введет "25", это будет сохранено как текст "25", а не число 25. Вы узнаете, как преобразовывать типы, в следующем уроке.

Вы можете прочитать несколько входных данных, используя readline() несколько раз:

first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")

Каждый вызов readline() ожидает отдельную строку ввода от пользователя.

При объединении текста с переменными с помощью cat(), между элементами, разделенными запятой, ставится пробел. Иногда нужно объединить текст без пробелов — например, чтобы добавить знак препинания непосредственно к слову. В таких случаях полезна функция paste0(). Она объединяет строки без разделителя между ними:

city <- readline()
cat("Welcome to", paste0(city, "!"), "\n")

Здесь paste0(city, "!") объединяет значение city и "!" без пробела, поэтому, если пользователь введет "Paris", результат будет: Welcome to Paris!

challenge icon

Задание

Легко

Прочитайте две строки ввода и выведите персонализированное приветственное сообщение.

Вы получите два входных значения:

  1. Имя
  2. Название города

Прочитайте оба входных значения с помощью readline() и выведите сообщение в следующем формате:

Welcome, [name] from [city]!

Используйте cat() для вывода результата. Обязательно добавьте восклицательный знак в конце и символ новой строки \n.

Например, если на вход подаются Emma и Paris, результат должен быть следующим:

Welcome, Emma from Paris!

Попробуйте сами

# Чтение входных данных
con <- file("stdin", "r")
name <- suppressWarnings(readLines(con, n = 1))
city <- suppressWarnings(readLines(con, n = 1))

# TODO: Напишите ваш код ниже, чтобы вывести приветственное сообщение
# Используйте cat() для вывода: Welcome, [name] from [city]!
# Не забудьте символ новой строки \n в конце
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы