Leggere l'input con readline()
Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 29 di 78.
Finora hai imparato a visualizzare l'output. Ora è il momento di rendere interattivi i tuoi programmi leggendo l'input dell'utente. La funzione readline() ti permette di acquisire ciò che digita l'utente.
name <- readline()
cat("Hello,", name, "\n")Quando questo codice viene eseguito, R aspetta che l'utente digiti qualcosa e prema Invio. Qualunque cosa digiti viene memorizzata nella variabile name. Se l'utente digita "Alice", l'output sarà: Hello, Alice
Una cosa importante da sapere: readline() restituisce sempre una stringa di caratteri, anche se l’utente digita un numero. Se qualcuno inserisce "25", viene memorizzato come testo "25", non come numero 25. Imparerai a convertire i tipi nella prossima lezione.
Puoi leggere più input usando readline() più volte:
first <- readline()
second <- readline()
cat("First:", first, "\n")
cat("Second:", second, "\n")Ogni chiamata a readline() attende una riga di input separata da parte dell’utente.
Quando combini testo e variabili usando cat(), tra ogni elemento separato da una virgola viene inserito uno spazio. A volte devi unire il testo senza spazi, per esempio per attaccare la punteggiatura direttamente a una parola. In questi casi è utile paste0(). Concatena le stringhe senza separatori tra loro:
city <- readline()
cat("Welcome to", paste0(city, "!"), "\n")Qui, paste0(city, "!") unisce il valore di city e "!" senza spazi, quindi se l'utente digita "Paris", l'output è: Welcome to Paris!
Sfida
FacileLeggi due righe di input e visualizza un messaggio di saluto personalizzato.
Riceverai due input:
- Un nome
- Il nome di una città
Leggi entrambi gli input usando readline() e visualizza un messaggio nel seguente formato:
Welcome, [name] from [city]!Usa cat() per produrre l’output. Assicurati di includere il punto esclamativo alla fine e un carattere di nuova riga \n.
Ad esempio, se gli input sono Emma e Paris, l’output dovrebbe essere:
Welcome, Emma from Paris!Provalo tu
# Leggi l'input
con <- file("stdin", "r")
name <- suppressWarnings(readLines(con, n = 1))
city <- suppressWarnings(readLines(con, n = 1))
# TODO: Scrivi il tuo codice qui sotto per visualizzare il messaggio di benvenuto
# Usa cat() per produrre: Welcome, [name] from [city]!
# Non dimenticare il carattere di nuova riga \n alla fineQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici (AND, OR)Operatori logici Parte 2 (NOT)Ripasso - Logica sempliceLogica vettorializzata Parte 1Logica vettorializzata Parte 27Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dell'utente10FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz13Vettori: argomenti avanzati
Slicing e indicizzazione dei vettoriIndicizzazione logicaAritmetica dei vettori e ricicloL’operatore %in%2Variabili e tipi di dati
Tipo di dato numericoTipo di dato interoTipo di dato carattereTipo di dato logicoControllo dei tipi di datoConvenzioni di denominazioneValori mancanti: NARiepilogo - Creazione di variabili8Cicli
Ciclo forCiclo whilebreaknext (continue)Riepilogo - FattorialeGenerazione di sequenze (seq, :)Cicli annidatiRiepilogo - Input dinamico3Operatori Parte 1
Operatori aritmeticiDivisione intera e moduloOperatori di assegnazioneRiepilogo - Matematica sempliceOperatori di confronto6I/O di base
Stampare l'outputcat per l'outputOutput con variabiliLeggere l'input con readline()Nozioni di base sulla conversione dei tipiRiepilogo - Calcolatore dell'etàRiepilogo - Vero o falso9Funzioni
Dichiarare una funzioneArgomenti della funzioneValori di ritornoRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti dei parametriEsercitati da solo: Compilatore R online