Récupérer la saisie utilisateur
Fait partie de la section Fondamentaux du Journey R de Coddy. Leçon 34 sur 78.
Défi
FacileDans la leçon précédente, vous avez créé un message de bienvenue pour le calculateur de partage d’addition. Ajoutez maintenant la fonctionnalité permettant de recueillir les entrées utilisateur pour le calcul de l’addition.
Après votre message de bienvenue existant, lisez trois entrées utilisateur :
- Le montant total de l’addition
- Le pourcentage de pourboire (sous forme de nombre entier, par exemple
15pour 15 %) - Le nombre de personnes qui partagent l’addition
Dans les scripts R qui s’exécutent de manière non interactive (comme sur cette plateforme), les données sont lues depuis le flux d’entrée standard. Pour cela, ouvrez d’abord une connexion vers stdin à l’aide de file(), puis lisez chaque ligne avec readLines() et fermez la connexion lorsque vous avez terminé :
con <- file("stdin", "r")
bill <- as.numeric(suppressWarnings(readLines(con, n = 1)))
tip_percent <- as.numeric(suppressWarnings(readLines(con, n = 1)))
people <- as.numeric(suppressWarnings(readLines(con, n = 1)))
close(con)Voici le rôle de chaque partie :
file("stdin", "r"): ouvre le flux d’entrée standard en lecture et le stocke dansconreadLines(con, n = 1): lit exactement une ligne depuis cette connexion. Remarque :readLines()est différent dereadline():readLines()fonctionne avec les connexions de fichiers (y comprisstdin) et peut lire plusieurs lignes à la fois grâce àn =, tandis quereadline()ne fonctionne qu’en mode interactif dans la console RsuppressWarnings(...): masque les avertissements sans gravité qui apparaissent lors de la lecture depuisstdinde cette manière. Lorsque R lit depuisstdindans un script, il produit parfois un avertissement tel que "incomplete final line", même lorsque tout fonctionne correctement. En englobant l’appel danssuppressWarnings(), ces messages sont masqués afin de ne pas encombrer votre sortie. Cela n’affecte pas les valeurs luesas.numeric(...): convertit l’entrée textuelle en nombreclose(con): ferme la connexion après la lecture de toutes les entrées
Stockez les trois valeurs dans des variables nommées bill, tip_percent et people.
Après avoir lu les entrées, affichez un message de confirmation indiquant ce qui a été saisi, selon le format suivant :
Bill: $[bill]
Tip: [tip_percent]%
People: [people]Utilisez cat() pour toutes les sorties et incluez les caractères de nouvelle ligne \n lorsque cela est nécessaire. Utilisez sep = "" dans chaque appel à cat() afin d’éviter les espaces indésirables.
Par défaut, cat() insère un espace entre chaque élément qu’il affiche. Par exemple :
cat("Bill: $", 120, "\n") # prints: Bill: $ 120 Remarquez les espaces indésirables entre $ et 120, ainsi qu’avant la nouvelle ligne. Ajouter sep = "" indique à cat() d’utiliser une chaîne vide comme séparateur, afin que rien ne soit inséré entre les éléments :
cat("Bill: $", 120, "\n", sep = "") # prints: Bill: $120Appliquez ce modèle aux trois lignes de confirmation :
cat("Bill: $", bill, "\n", sep = "")
cat("Tip: ", tip_percent, "%\n", sep = "")
cat("People: ", people, "\n", sep = "")Par exemple, si les entrées sont 120, 18 et 4, la sortie complète devrait être :
Welcome to the Bill Split Calculator!
Let's split your bill fairly.
Bill: $120
Tip: 18%
People: 4Essayez vous-même
# TODO: Write your code below
# Use cat() to display the welcome message
# Remember to use \n for new lines
cat("Welcome to the Bill Split Calculator!\nLet's split your bill fairly.\n")Toutes les leçons de Fondamentaux
4Opérateurs - Partie 2
Opérateurs logiques (AND, OR)Opérateurs logiques - Partie 2 (NOT)Récapitulatif - Logique simpleLogique vectorisée - Partie 1Logique vectorisée - Partie 27Calculateur de partage d'addition
Message de bienvenueRécupérer la saisie utilisateur10FizzBuzz avec une variante
Présentation du jeuLa fonction FizzBuzz2Variables et types de données
Type de données numériqueType de données entierType de données caractèreType de données logiqueVérification des types de donnéesConventions de nommageValeurs manquantes : NARécapitulatif - Création de variables8Boucles
Boucle ForBoucle WhileBreakSuivant (Continue)Récapitulatif - FactorielleGénération de séquences (seq, :)Boucles imbriquéesRécapitulatif - Saisie dynamique3Opérateurs, partie 1
Opérateurs arithmétiquesDivision entière et moduloOpérateurs d'affectationRécapitulatif - Mathématiques simplesOpérateurs de comparaison6Entrées/Sorties de base
Affichage avec PrintCat pour l'affichageAffichage avec des variablesLire l'entrée avec readline()Bases de la conversion de typesRécapitulatif - Calculateur d'âgeRécapitulatif - Vrai ou Faux9Fonctions
Déclarer une fonctionArguments de fonctionValeurs de retourRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationValeurs de paramètres par défautEntraînez-vous par vous-même : Compilateur R en ligne