Cheerful parent sitting beside daughter doing school homework together

010 – Le Défi – Semaine 9

Spread the love

5 1 vote
Évaluation de l'article

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 1

Si ce n’est pas déjà le cas, ouvre Visual Studio Code et crée un nouveau fichier dans l’éditeur. Commençons par quelque chose de très simple, saisis :

				
					print("Bonjour")
prenom=input("Quel est ton prénom ? ")
print("Merci.)
nom=input("Et quel est ton nom de famille ? ")
				
			

ÉTAPE 2

➽ Sauvegarde et exécute le code, et comme tu t’en doutes déjà, dans le shell IDLE, le programme te demandera ton prénom, en le stockant dans la variable prenom, suivi de ton nom de famille, également stocké dans sa propre variable (nom).

ÉTAPE 3

➽ Maintenant que le nom de l’utilisateur est stocké dans quelques variables, nous pouvons l’appeler quand nous le voulons :

				
					print("Bienvenue",prenom, nom, ". J'espère que tout va bien aujourd'hui.")
				
			

ÉTAPE 4

Exécute le code et tu peux voir un léger problème, le point après le nom de famille suit un espace vide. Pour éliminer ce problème, nous pouvons ajouter un signe plus à la place de la virgule dans le code :

				
					print("Bienvenue",prenom, nom+". J'espère que tout va bien aujourd'hui.")
				
			

ÉTAPE 5

Il n’est pas toujours nécessaire d’inclure du texte entre guillemets dans la commande de saisie. Par exemple, tu peux demander à l’utilisateur son prénom, et avoir la saisie dans la ligne en dessous :

				
					print("Bonjour. Quel est ton prénom ?")
prenom=input()
				
			

É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

  1. Comment récupérer des informations de l’utilisateur avec Python ?
  2. 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)
<class 'str'>
				
			

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 !


Spread the love
5 1 vote
Évaluation de l'article
S’abonner
Notification pour
guest

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

0 Commentaires
Commentaires en ligne
Afficher tous les commentaires
0
Nous aimerions avoir votre avis, veuillez laisser un commentaire.x
Retour en haut