Чтение ввода через 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!
Задание
ЛегкоПрочитайте две строки ввода и выведите персонализированное приветственное сообщение.
Вы получите два входных значения:
- Имя
- Название города
Прочитайте оба входных значения с помощью 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 в концеВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 2
Логические операторы (AND, OR)Логические операторы. Часть 2 (NOT)Повторение: простая логикаВекторизованная логика. Часть 1Векторизованная логика. Часть 27Калькулятор разделения счета
Приветственное сообщениеПолучение пользовательского ввода13Векторы: продвинутый уровень
Срезы и индексация векторовЛогическая индексацияАрифметика и ресайклинг векторовОператор %in%2Переменные и типы данных
Числовой тип данныхЦелочисленный тип данныхСимвольный тип данныхЛогический тип данныхПроверка типов данныхПравила именованияПропущенные значения: NAИтоги — создание переменных5Принятие решений
Оператор ifКонструкция if - elseПовторение: Простой калькуляторВложенные конструкции if - else8Циклы
Цикл ForЦикл WhileBreakNext (Continue)Повторение: ФакториалГенерация последовательностей (seq, :)Вложенные циклыПовторение: Динамический ввод3Операторы. Часть 1
Арифметические операторыЦелочисленное деление и остаток от деленияОператоры присваиванияПовторение: простая математикаОператоры сравнения6Основы ввода-вывода
Вывод через printКоманда cat для выводаВывод с переменнымиЧтение ввода через readline()Основы преобразования типовПовторение — Калькулятор возрастаПовторение — Истина или ложь9Функции
Объявление функцииАргументы функцииВозвращаемые значенияПовторение — функция SigmaПовторение — функция валидацииЗначения параметров по умолчанию12Итерация по последовательностям
Итерация по элементам вектораИспользование seq_along()Итерация по символам (strsplit)Функции для работы со строкамиПотренируйтесь самостоятельно: Онлайн-компилятор R