Menu
Coddy logo textTech

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

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

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

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

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

Важно знать: readline() всегда возвращает строку символов character, даже если пользователь вводит число. Если кто-то вводит "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Проверьте себя

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

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

Потренируйтесь самостоятельно: Онлайн-компилятор R