Conversion des types de données
Python possède plusieurs types de données, notamment les entiers (int), les flottants (float), les booléens (bool), les chaînes (str), les tuples (tuple), les listes (list), les dictionnaires (dict) et les ensembles (set).
Méthodes courantes de conversion
Les conversions entre types sont essentielles pour manipuler les données efficacement. Par exemple, convertir un entier en flottant ou extraire une valeur numérique d'une chaîne.
# Exemple de conversion entier vers flottant
valeur_ent = 25
print(float(valeur_ent)) # Affiche 25.0
# Exemple de conversion flottant vers entier avec troncature
valeur_flottante = 14.76
print(int(valeur_flottante)) # Affiche 14, les décimales sont perdues
# Conversion de chaînes vers types numériques
chaine_num = '50'
chaine_decimale = '3.14'
print(int(chaine_num)) # Affiche 50
print(float(chaine_decimale)) # Affiche 3.14
La fonction eval() interprète une chaîne comme expression Python, ce qui permet de récupérer le type original d'un nombre saisi par l'utilisateur.
montant = input('Entrez le prix : ')
print(eval(montant)) # Si l'entrée est '10', retourne un entier ; si '2.5', retourne un flottant
Précautions lors des conversions
- Multiplication d'une chaîne par un entier répète la chaîne ce nombre de fois.
- La conversion de flottant en entier élimine les décimales.
- Les chaînes non numériques provoquent des erreurs lors de la conversion.
Opérateurs en Python
Opérateurs arithmétiques
Les opérations de base incluent l'addition, la soustraction, la multiplication et la division. Notez que l'addition de flottants peut causer des imprécisions dues à la représentation binaire ; utilisez Decimal du module decimal pour une précision exacte, ou arrondissez avec round().
a = 15
b = 4
print('Somme :', a + b)
print('Différence :', a - b)
print('Produit :', a * b)
print('Quotient :', a / b)
# Opérations supplémentaires
print('Division entière :', a // b) # Affiche 3
print('Reste :', a % b) # Affiche 3
print('Puissance :', b ** 3) # Affiche 64
print('Priorité avec parenthèses :', (a + b) * 2) # Affiche 38
Opérateurs d'affectation et composés
Les opérateurs d'affectation simples (=) et composés (comme +=, *=) modifient la valeur des variables. Les composés combinent une opération arithmétique avec l'affectation.
Opérateurs de comparaison
Ces opérateurs retournent des valeurs booléennes (True ou False). Par exemple, == teste l'égalité, != teste l'inégalité.
Opérateurs logiques
and retourne True si les deux conditions sont vraies, or si au moins une est vraie, et not inverse la valeur booléenne. Python considère 0, les chaînes vides et None comme False, les autres valeurs comme True. L'évaluation se fait de gauche à droite avec arrêt anticipé si possible.
Priorité des opérateurs
Pour la lisibilité, utilisez des parenthèses pour contrôler l'ordre d'évaluation plutôt que de se fier aux priorités. Simplifiez les expressions complexes en les décomposant.
Structures conditionnelles avec if
Structure de base
Python utilise l'indentation pour délimiter les blocs de code. La syntaxe de base est :
if condition:
bloc_de_code
elif autre_condition:
bloc_alternatif
else:
bloc_par_defaut
Imbrication de if
L'imbrication de structures if est possible mais doit être limitée pour éviter la complexité et maintenir la clarté du code.
Exemple intégré : Pierre-papier-ciseaux
Ce jeu implique un joueur et un ordinateur. Le joueur saisit son choix (0 pour pierre, 1 pour ciseaux, 2 pour papier), l'ordinateur génère un choix aléatoire avec random.randint(), et le programme détermine le gagnant selon les règles classiques.
import random
# Saisie du joueur
choix_utilisateur = int(input('Entrez votre choix (0: pierre, 1: ciseaux, 2: papier) : '))
# Choix aléatoire de l'ordinateur
choix_ordinateur = random.randint(0, 2)
# Évaluation du résultat
if (choix_utilisateur == 0 and choix_ordinateur == 1) or \
(choix_utilisateur == 1 and choix_ordinateur == 2) or \
(choix_utilisateur == 2 and choix_ordinateur == 0):
print('Le joueur gagne')
elif choix_utilisateur == choix_ordinateur:
print('Match nul')
else:
print("L'ordinateur gagne")
Opérateur ternaire
L'opérateur ternaire simplifie les expressions conditionnelles courtes. Sa syntaxe est :
valeur_si_vrai if condition else valeur_si_faux
# Comparaison de deux nombres
x = 45
y = 30
maximum = x if x > y else y
print('Le maximum est :', maximum)
# Vérification de la réussite d'un examen
note = 75
resultat = 'Réussi' if note >= 60 else 'Échoué'
print(resultat)
Chaque branche de l'opérateur ternaire ne peut contenir qu'une seule expression ou instruction.