Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Vos tutoriels et astuces


Index du Forum » Vos tutoriels et astuces » TDM n°14 – Le python, base et utilisation
Massena En ligne Ancien rédacteur Points: 2219 Défis: 11 Message

TDM n°14 – Le python, base et utilisation

Posté le 25/09/2019 18:00

Le Tuto Du Mercredi [TDM] est une idée qui fut proposée par Ne0tux. Le principe est simple : tout les mercredis, nous postons un tutoriel sur l'Utilisation de la calculatrice, le Transfert, les Graphismes, la Programmation, ou encore la Conception de jeux.

Quels sont les fondamentaux du python à connaître et comment coder sur calculatrice dans ce language ?

Niveau : ★ ★ ★ ☆ ☆

Tags : Python, micropython, casio, tutoriel

Fut un temps où le C était le langage de programmation abordé au lycée. Las, le python a désormais remplacé ce langage depuis la réforme du lycée. Heureusement, le python est plus facile d'accès aux non-intiés et devient un bon compromis entre la syntaxe et la puissance du C et la simplicité de compréhension du Basic Casio. Dans ce premier TDM, nous allons découvrir comment utiliser correctement Python.

Partie I – La syntaxe du python

Le python est un langage plutôt complexe en apparence, mais simple en réalité. Je pars du pricnipe que vous avez des bases en programmation, et que vous souhaitez parcourir dans les grandes lignes le python. Voici à quoi peut ressembler un programme simple :

a=int(input("Donne un chiffre entre 0 et 1 !"))

if a==0:
   print("Ton chiffre est 0 !")
else:
   print("Ton chiffre est 1 !")

Je vais parler dans cette section de la syntaxe principale et des variables. Tout d'abord, parlons des variables :
Une variable est une inconnue, une valeur qui peut varier au cours du programme. Il existe deux principaux types de variables en python : le type int pour désigner un nombre entier et le type float pour autoriser les nombres décimaux. Il ne faut rien préciser comme type lorsque vous demandez du texte. Il n'est pas obligé de marquer le type de la variable, mais il est obligatoire de le mettre lors d'une entrée de la part de l'utilisateur (lorsqu'on leur demande une information). La syntaxe simplifiée pour affecter une variable est la suivante :

#La syntaxe d'affectation est variable = valeur
#Une variable peut prendre n'importe quel nom avec les lettres de A à Z, les chiffres de 0 à 9 et le underscore _
#Vous pouvez commenter votre programme avec le signe hashtag #

x = 42
Nombre = 98.2
Valeur_variable = int(5)
Virgule = float(0.333333)
A = B
Loisir = "coder en python"
r = float(input("Entrez le rayon du cercle :")

#La dernière ligne demande à l'utilisateur de rentrer la valeur de la variable r

Au niveau de la syntaxe, il y a deux règles principales à retenir :
- Le début du contenu des boucles et conditions commence toujours par les deux points : à la fin de la fonction. Le contenu est toujours "décalée" vers la droite, mais cela se fait automatiquement. Comme exemple, regardez le premier programme.
- Une chaîne de caractère, du texte si vous préférez, sera toujours indiqué entre guillemets. Une valeur correspondant à un type comme float ou les arguments plsu génralements sont toujours entre paranthèses, séparés par une virgule lorsqu'il y en a plusieurs.
Nous pouvons dè maintenant attaquer les entrées et sorties, même si nous l'avons déjà abordé un peu au dessus !

Partie II – Opération simples et entrées/sorties

Vous pouvez manipuler des variables grâce aux opérateurs mathématiques. Lors d'un calcul sur python, les règles de calcul traditionnel sont respectés ainsi que l'ordre des opérations. Le python a un avantage par rapport aux calculatrices : Il permet de calculer de plus grands nombres, comme 9^9^9^9 etc. Voici une listes des principaux opérateurs en python :

#Opérateurs de calcul
a+b
a*b
a-b
a/b
a**b         #Cacule a puissance b
sqrt(a)      #Calcule la racine carrée de a
a%b          #Calcule le reste de la dicision euclidienne de a par b

#Opérateurs de condition
a==b         #Demande si a est égal à b
a>=b         #Demande si a est superieur à b
a<=b         #Demande si a est inferieur à b
a!=b         #Demande si a n'est pas égal à b
and          #Permet de demander si deux conditions sont validées
or           #Permet de demander si une des deux conditions est validée
not          #Permet de demander si une condition n'est pas validée

Les opérateurs de calcul sont principalement utilisées durant des affectations de variables, tandis que les opérateurs de condition sont utilisées dans... les conditions et les boucles.

Pour demander une valeur à l'utilisateur, il faut utiliser l'argument input lors de l'affectation d'une variable :

#Variable = type(input("texte"))

x = int(input("Donne un nombre entre 1 et 50"))
Valeur_De_Lutilisateur = eval(input("Donne moi une puissance au hasard !"))
Nom = input("Comment t'appelles-tu ?")

Pour afficher du texte ou une variable, vous pouvez utiliser la fonction print :

#print(argument)

print(3.14)
print(n)
print("Coucou les loulous !")

Partie III – Boucles et conditions

Dans un programme, il y a le plus souvent des décisions à prendre ou des fonctions à répéter en boucle. C'est le rôle des conditions et des boucles, qu'elles soient bornées ou non. Rappel de l'espacement dans une boucle ou une condition :

...
if a==0 and b == 2:
   b=1+1
   for i in range(1, 51):
      print(b)
      b=b+i
else:
   print("Essaye encore !")
...

Ce code ne fait... rien de particulier mais est particulièrement représentatif de l'espacement dans le contenu d'une boucle ou d'une condition. N'oubliez jamais cette règle !

Voici la syntaxe d'une condition :

#if normal
if argument(s):
   instruction(s)

#if else (Si... Sinon...)
if arguments(s):
   instruction(s)1
else:
   instruction(s)2

Les conditions peuvent contenir plusieurs arguments, séparés par un and ou un or. Avec and, le contenu de la condition s'effetuera lorsque les deux conditions seront vérifées, et avec le or lorsqu'une des deux conditions sera vérifiée. Vous pouvez combiner plusieurs opérateurs logiques.

Passons aux boucles. Il en existe deux types : les boules dites "bornées", qui tourneront un nombre défini de fois, et les boucles dites "non-bornées", qui tourneront tant que la condition de sortie sera vérifiée. A noter que la boucle bornée va s'effectuer n-1 fois ! Cela veut dire que si vous marquez 50 au nombre d'arrêt, la boucle va tourner 49 fois.

#Syntaxe de la boucle bornée, avec x étant la valeur allant varier, n affecté à x au début de la boucle (généralement 1) et m-1 le nombre de tours.
for x in range(n,n-1):
   instruction(s)

#Syntaxe de la boucle non-bornée qui va continuer de tourner tant que la condition est vérifiée :
while condition:
   instruction(s)

Voilà, vous avez désormais toutes les cartes en main pour créer de simples petits programmes de calcul ! Ceci est un chapitre largement abordé au lycée : nul doute que votre enseignant vous expliquera mieux que moi

Liens utiles :
- Un tutoriel bien plus complet sur le python, avec des screens pour la Graph 90+
- Le tutoriel du wiki python
- Votre prof de math

Consulter le TDM précédent : TDM n°13 - Faire une belle présentation de votre jeu !
Consulter l'ensemble des TDM


1, 2 Suivante
Shadow15510 En ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 25/09/2019 18:48 | #


Ton tuto est super !

Cependant, on a déjà un tuto sur le Python (dont tu n'as pas mis le lien en bas ) : https://www.planet-casio.com/Fr/programmation/tutoriels.php?id=83

Tu as quelques erreurs de frappes : imput, vou,…
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Massena En ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 25/09/2019 19:01 | #


Ah zut, j'ai pas fait une recherche assez approfondie...
Je corrigé ça dès que j'en ai l'occasion.
Shadow15510 En ligne Administrateur Points: 5498 Défis: 18 Message

Citer : Posté le 25/09/2019 19:03 | #


Merci !

J'ai ajouté ton tuto à la liste.
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Kikoodx Hors ligne Ancien labélisateur Points: 3011 Défis: 11 Message

Citer : Posté le 25/09/2019 19:27 | #


Une majuscule à Python s'il te plaît
Il faudrait corriger la capitalisation en général, surtout dans le code.
Sinon beau travail.
ouais ouais
Tituya En ligne Administrateur Points: 2137 Défis: 26 Message

Citer : Posté le 25/09/2019 19:47 | #


Vraiment un tuto sympa ! J'aurai rajouté un petit exemple contenant le tout en guise de résumé perso
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 25/09/2019 20:35 | #


Salut et merci pour ce TDM ! Quelques corrections dans les coins qui me semblent importantes en plus de ce qui a déjà été mentionné...

Fut un temps où le C était le langage de programmation abordé au lycée.

Nope, bien tenté toutefois mais c'est faux.

Coquilles diverses : "pricnipe", "ouhaitez", "If", "Else", manque une parenthèse fermante pour la saisie du rayon du cercle.

eval n'est pas un type (!!), mais une fonction, et très dangeureuse ! Et la notion de type concerne les données, pas les variables, même si on peut s'autoriser la confusion dans un tutoriel pour débutants.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Krevo_ Hors ligne Maître du Puzzle Points: 412 Défis: 2 Message

Citer : Posté le 26/09/2019 09:50 | #


Turbo pascal pour moi au Lycée .... à une époque lointaine !
Casio Basic Web Interpreter, c'était le basic Casio dans votre navigateur web !
Hackcell Hors ligne Maître du Puzzle Points: 1524 Défis: 11 Message

Citer : Posté le 26/09/2019 10:06 | #


Algobox pour ma part, quelques années avant la réforme python
Corne2plum3 Hors ligne Membre Points: 280 Défis: 9 Message

Citer : Posté le 26/09/2019 21:11 | #


Massena a écrit :
Je pars du pricnipe que vous avez des bases en programmation, et que vous ouhaitez parcourir dans les grandes lignes le python.

"ouhaitez" ??????

Sinon merci pour ce tutoriel fort utile puisqu'on va étudier le Python au lycée
Par contre est ce que les tabulations dans les boucles sont vraiment importantes ?
N'arrêtez jamais d'apprendre ! (Leo TechMaker)
Tu veux des bons jeux ? Ou bien des utilitaires ou des trucs inutiles ?...
C'est ici ! Programmes compatibles Graph 35+
Ce super jeu : Le solitaire à 33 trous
Ce tableau périodique à jour : Tableau périodique
Ce truc qui sert à rien : Carton de loto generator
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 26/09/2019 21:14 | #


Tu es obligé d'indenter le corps des boucles oui.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Corne2plum3 Hors ligne Membre Points: 280 Défis: 9 Message

Citer : Posté le 26/09/2019 21:17 | #


Ok merci
C'est qu'en fait j'avais remarqué qu'il y avait pas de commandes qui fermaient les boucles... (dans le CasioPython de Zezombye).
N'arrêtez jamais d'apprendre ! (Leo TechMaker)
Tu veux des bons jeux ? Ou bien des utilitaires ou des trucs inutiles ?...
C'est ici ! Programmes compatibles Graph 35+
Ce super jeu : Le solitaire à 33 trous
Ce tableau périodique à jour : Tableau périodique
Ce truc qui sert à rien : Carton de loto generator
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 26/09/2019 21:18 | #


Il n'y a jamais de commandes pour fermer les blocs, en fait. C'est justement l'indentation qui indique quand ils se terminent.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Bulito Hors ligne Membre Points: 124 Défis: 3 Message

Citer : Posté le 25/10/2019 12:47 | #


Attention, petite erreur d’inattention dans le tout premier code :

a=int(input("Donne un chiffre entre 0 et 1 !"))

if a==0: #il manquait un "égal"!!!
   print("Ton chiffre est 0 !")
else:
   print("Ton chiffre est 1 !")
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 25/10/2019 13:23 | #


Bien vu, j'ai modifié.
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Bulito Hors ligne Membre Points: 124 Défis: 3 Message

Citer : Posté le 25/10/2019 14:09 | #


C'est que j'en fais du Python moi !
Massena En ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 25/10/2019 20:44 | #


Etre rédacteur c'est bien, on se fait défoncer à chaque faute commise
Je corrige mes coquilles.

Ajouté le 11/11/2019 à 11:11 :
Bon, par manque d'idée j'annule la partie 2 du TdM, qui était consacrée à l'utilisation de l'application Micropython.
Désolé !
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 11/11/2019 11:17 | #


Par manque d'idées ? Il y a pourtant plein de choses à dire sur le shell, le cas des applications Python sur les Graph, print, repr, toute la parti interactive, et juste plein d'autres choses sur le langage...
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
Massena En ligne Ancien rédacteur Points: 2219 Défis: 11 Message

Citer : Posté le 11/11/2019 11:22 | #


Je ne m'y connait malheureusement pas assez pour en dire plus...
Disperseur Hors ligne Membre Points: 1830 Défis: 1 Message

Citer : Posté le 11/11/2019 11:31 | #


On est d'accord que sur le shell on ne peut pas ecrire des instructions sur plusieures lignes ?
Lephenixnoir En ligne Administrateur Points: 24145 Défis: 170 Message

Citer : Posté le 11/11/2019 11:41 | #


Disperseur a écrit :
On est d'accord que sur le shell on ne peut pas ecrire des instructions sur plusieures lignes ?

Ça dépend des shells. Dans le shell Python canonique tu peux absolument le faire, il suffit de rajouter un backslash à la fin de la ligne pour indiquer que la suite arrive (facultatif si la ligne se termine déjà par un deux points).
Mon graphe (24 Mars): (gint#27 ; (Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; ...) || (shoutbox v5 ; v5)
1, 2 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 107 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd