Odczyt danych wejściowych za pomocą readline()
Część sekcji Podstawy ścieżki R w Coddy. Lekcja 29 z 78.
Do tej pory nauczysz się wyświetlać dane wyjściowe. Teraz czas sprawić, by Twoje programy były interaktywne, odczytując dane wejściowe od użytkownika. Funkcja readline() pozwala przechwycić to, co wpisuje użytkownik.
name <- readline()
cat("Hello,", name, "\n")Gdy ten kod zostanie uruchomiony, R czeka, aż użytkownik coś wpisze i naciśnie Enter. Wszystko, co wpisze, zostanie zapisane w zmiennej name. Jeśli użytkownik wpisze „Alice”, wynikiem będzie: Hello, Alice
Ważna rzecz, którą warto wiedzieć: readline() zawsze zwraca ciąg znaków, nawet jeśli użytkownik wpisze liczbę. Jeśli ktoś wpisze „25”, zostanie ona zapisana jako tekst "25", a nie jako liczba 25. W następnej lekcji dowiesz się, jak konwertować między typami.
Możesz wczytać wiele danych wejściowych, używając readline() wielokrotnie:
first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")Każde wywołanie readline() czeka na osobny wiersz danych wejściowych od użytkownika.
Podczas łączenia tekstu ze zmiennymi za pomocą cat() między elementami oddzielonymi przecinkami pojawia się spacja. Czasami trzeba połączyć tekst bez spacji, na przykład, aby bezpośrednio dołączyć znak interpunkcyjny do słowa. Właśnie wtedy przydaje się paste0(). Łączy ciągi znaków, nie wstawiając między nimi żadnego separatora:
city <- readline()
cat("Welcome to", paste0(city, "!"), "\n")Tutaj paste0(city, "!") łączy wartość city i "!" bez spacji, więc jeśli użytkownik wpisze „Paris”, wynikiem będzie: Welcome to Paris!
Wyzwanie
ŁatwyWczytaj dwa wiersze danych wejściowych i wyświetl spersonalizowane powitanie.
Otrzymasz dwa dane wejściowe:
- Imię
- Nazwę miasta
Wczytaj oba dane wejściowe za pomocą readline() i wyświetl komunikat w następującym formacie:
Welcome, [name] from [city]!Użyj cat(), aby wygenerować wynik. Pamiętaj, aby na końcu umieścić wykrzyknik i znak nowej linii \n.
Na przykład, jeśli danymi wejściowymi są Emma i Paris, wynikiem powinno być:
Welcome, Emma from Paris!Spróbuj swoich sił
# Odczytaj dane wejściowe
con <- file("stdin", "r")
name <- suppressWarnings(readLines(con, n = 1))
city <- suppressWarnings(readLines(con, n = 1))
# TODO: Napisz poniżej kod wyświetlający powitanie
# Użyj cat(), aby wyświetlić: Welcome, [name] from [city]!
# Nie zapomnij o znaku nowej linii \n na końcuTa lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Operatory, część 2
Operatory logiczne (AND, OR)Operatory logiczne, część 2 (NOT)Powtórka — prosta logikaLogika wektoryzowana, część 1Logika wektoryzowana, część 27Kalkulator podziału rachunku
Wiadomość powitalnaPobieranie danych od użytkownika10FizzBuzz z niespodzianką
Omówienie gryFunkcja FizzBuzz2Zmienne i typy danych
Liczbowy typ danychCałkowity typ danychZnakowy typ danychLogiczny typ danychSprawdzanie typów danychKonwencje nazewnictwaBrakujące wartości: NAPodsumowanie – tworzenie zmiennych8Pętle
Pętla forPętla whilePrzerwijNastępna iteracja (continue)Powtórka — silniaGenerowanie sekwencji (seq, :)Pętle zagnieżdżonePowtórka — dynamiczne wprowadzanie danych3Operatory, część 1
Operatory arytmetyczneDzielenie całkowite i moduloOperatory przypisaniaPowtórka — prosta matematykaOperatory porównania6Podstawowe wejście/wyjście
Wyświetlanie danychCat jako wyjścieWyjście z użyciem zmiennychOdczyt danych wejściowych za pomocą readline()Podstawy konwersji typówPowtórka — kalkulator wiekuPowtórka — prawda czy fałsz9Funkcje
Deklarowanie funkcjiArgumenty funkcjiWartości zwracanePowtórzenie — funkcja SigmaPowtórzenie — funkcja walidującaDomyślne wartości parametrówPoćwicz samodzielnie: Kompilator R online