Menu
Coddy logo textTech

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!

challenge icon

Sfida

Facile

Leggi due righe di input e visualizza un messaggio di saluto personalizzato.

Riceverai due input:

  1. Un nome
  2. 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 fine
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore R online