Fin du défi dans :
Table des matières
🌟 Rejoignez notre communauté vibrante sur les réseaux sociaux ! 🌟
Vous cherchez un lieu pour échanger, apprendre et grandir ensemble ? Ne cherchez plus ! 🎉 Venez nous rejoindre sur nos réseaux sociaux où nous partageons des astuces, des inspirations et des discussions captivantes. Que vous soyez passionné par le développement personnel, l’art, la technologie ou autre, il y a toujours quelque chose pour chacun.
➡️ Participez à nos conversations enrichissantes et connectez-vous avec des personnes qui partagent vos intérêts. Nous croyons en la force de la communauté pour apprendre et évoluer ensemble. Chaque jour est une occasion de découvrir quelque chose de nouveau et de partager vos propres expériences et idées.
🔗 Suivez-nous dès aujourd’hui et faites partie de notre voyage collaboratif. Votre voix est essentielle pour nous, et ensemble, nous pouvons rendre notre communauté encore plus dynamique et inclusive.
#EnsemblePlusForts 💪 #Communauté 🌐
Interagir avec l'utilisateur
Nous avons vu une interaction basique entre l’utilisateur et le code dans quelques exemples précédents, c’est donc le bon moment pour se concentrer uniquement sur la façon dont tu obtiendras des informations de l’utilisateur, puis sur la façon dont tu les stockeras et les présenteras.
Convivialité
Le type de données que tu souhaites obtenir de l’utilisateur dépend beaucoup du type de programme que tu codes. Par exemple, un jeu peut demander le nom d’un personnage, alors qu’une base de données peut demander des détails personnels.
ÉTAPE 6
➽ L‘on considère souvent que le code de l’étape précédente est un peu plus soigné que d’avoir une longue quantité de texte dans la commande d’entrée, mais ce n’est pas une règle gravée dans le marbre, alors fais ce que tu veux dans ce genre de situation. En approfondissant le code, essaie ceci :
print("Halte ! Qui va là ?")
prenom=input()
ÉTAPE 7
➽ C’est un bon début pour un jeu d’aventure textuel, peut-être ? Tu peux maintenant le développer et utiliser les données brutes de l’utilisateur pour étoffer un peu le jeu :
if prenom=="Sébastien":
print("Bienvenue, mon bon monsieur. Tu peux passer.")
else:
print("Je ne vous connais pas. Préparez-vous au combat !")
ÉTAPE 8
➽ Ce que tu as créé ici est une condition, dont nous parlerons bientôt. En bref, nous utilisons les données de l’utilisateur et les mesurons par rapport à une condition. Ainsi, si l’utilisateur saisit Sébastien comme prénom, le gardien lui permettra de passer sans encombre. Dans le cas contraire, s’il entre un autre prénom que Sébastien, le gardien le défie de se battre.
ÉTAPE 9
➽ Comme tu l’as appris précédemment, toute entrée provenant d’un utilisateur est automatiquement une chaîne de caractères, tu dois donc appliquer un TypeCast pour la transformer en quelque chose d’autre. Cela permet d’ajouter des éléments intéressants à la commande input. Par exemple :
# Code pour calculer la vitesse et la distance
print("Saisis une vitesse et une distance")
vitesse = float(input("Vitesse : "))
ÉTAPE 10
➽ Pour finaliser le code de vitesse et de distance, nous pouvons ajouter :
distance = float(input("Distance : "))
print("Temps :", (distance / vitesse))
Sauvegarde et exécute le code et saisis quelques chiffres. En utilisant l’élément float(input), nous avons indiqué à Python que tout ce qui est saisi est un nombre à virgule flottante plutôt qu’une chaîne de caractères.
Interagir avec l'utilisateur / La vidéo
Il est très courant quand on crée des scripts qu’on ai besoin à un moment donné d’interagir avec l’utilisateur du script.
Que ce soit pour demander un dossier dans lequel télécharger une vidéo, demander le nombre d’euros que vous souhaitez convertir en bahts, pour demander le nombre de minutes que vous souhaitez ajouter à votre minuteur, les occasions ne manquent pas.
Pour l’instant, on va rester simple et demander la saisie de l’utilisateur dans un programme en ligne de commande.
On verra tout à la fin de la formation comment créer des interfaces graphiques qui nous permettront d’avoir un rendu un peu plus intéressant à présenter aux utilisateurs de nos programmes.
Mais pour l’instant, place à la fonction input 👋
Sébastien.
Exercice de codage 8 : Récupérer la saisie de l'utilisateur
Le but de cet exercice est de demander à l’utilisateur de rentrer plusieurs informations comme son prénom, sa ville de naissance et son âge.
Une fois que vous avez récupéré ces informations, il faut afficher ces informations à l’écran.
Questions pour cet exercice
- Comment récupérer des informations de l’utilisateur avec Python ?
- Copie ton code dans la zone Message ci-dessous, je corrige et je te réponds par mail dès que c’est fait.
Dans le formulaire ci-dessous, coller votre code. N’oubliez pas de renseigner vos coordonnées. Je corrige l’exercice et je vous réponds en personne pour vous communiquer votre résultat.
Fiche Récapitulative
Il est très courant dans un script d’avoir besoin à un moment ou un autre de demander des informations à l’utilisateur.
On pourrait par exemple demander la nouvelle taille d’une image qu’on souhaite modifier, l’URL d’un site web ou encore un chemin de dossier dans lequel on veut écrire des données.
Pour demander des informations à un utilisateur dans un script en ligne de commande, on utilise avec Python la fonction input.
La fonction input
La fonction input accepte un argument qui correspond au texte que l’on souhaite afficher à l’utilisateur.
Par exemple, si on souhaite demander l’âge de l’utilisateur :
>>> input("Quel âge avez-vous ? ")
Quel âge avez-vous ?
L’utilisateur peut ensuite écrire à la fin de la phrase affichée.
La saisie de l’utilisateur est ensuite retournée par la fonction input :
>>> input("Quel âge avez-vous ? ")
Quel âge avez-vous ? 54
'54'
En l’état actuel, cela ne sert pas à grand-chose car nous ne récupérons pas cette valeur dans une variable.
Pour ce faire, il suffit de faire une affectation simple lors de l’utilisation de la fonction input.
Une fois les données renseignées par l’utilisateur, la valeur retournée sera affectée dans la variable indiquée :
>>> age = input("Quel âge avez-vous ? ")
Quel âge avez-vous ? 54
>>> print(age)
54
Depuis la version 3 de Python, la fonction input retourne systématiquement une chaîne de caractères.
Ainsi, la variable age dans l’exemple ci-dessus ne sera pas considérée comme un nombre entier mais comme une chaîne de caractère contenant le nombre 54, ce que l’on peut vérifier avec la fonction type :
>>> age = input("Quel âge avez-vous ? ")
Quel âge avez-vous ? 54
>>> type(age)
Si vous souhaitez convertir la variable age en nombre entier, il faudra donc utiliser la fonction de conversion int.
Une petite note sur Python 2 (Séquence Nostalgie)
Avant l’apparition de la version 3 de Python, il existait deux fonctions pour récupérer des données de l’utilisateur : la fonction input et la fonction raw_input.
La fonction raw_input de Python 2 est l’équivalent de la fonction input de Python 3. Cette fonction retournait systématiquement une chaîne de caractères.
La fonction input avec Python 2 quant à elle interprétait le résultat donné par l’utilisateur.
Ainsi, quand l’utilisateur renseignait un nombre entier par exemple, la fonction input retournait directement un objet de type nombre entier.
Ce problème ne se pose plus avec Python 3 qui n’a conservé que la fonction raw_input d’origine et l’a renommé en input.
Ainsi, avec Python 3, seule la fonction input demeure, et elle vous retournera systématiquement une chaîne de caractères.
Cela peut sembler être un inconvénient (on aimerait bien recevoir directement un nombre quand l’utilisateur nous envoie un nombre).
Dans la pratique, cela permet de redonner le contrôle au développeur.
Les données retournées par la fonction input sont ainsi constantes (chaîne de caractères), et c’est au développeur de valider les données par la suite et, s’il le souhaite, de changer le type de la variable.
Télécharge ta ressource ici !
Prêt à approfondir tes connaissances ? Clique sur le bouton ci-dessous pour obtenir ton PDF. Ce document contient toutes les informations sous forme de fiche récapitulative pour tirer le meilleur parti de ta formation.
🏅 Bonne découverte !