Created
August 29, 2016 09:54
-
-
Save superboum/9f2f55aafc7befe26f14e314710fcd63 to your computer and use it in GitHub Desktop.
Les types 'int' et 'str' en python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # On veut opérer un traitement sur le nombre 1234 qui remplacera tous les 1 par des 9, puis multiplie le nouveau nombre par 2. | |
| def traitement(nombre): | |
| # La on devrait avoir un entier | |
| print(type(nombre), nombre, "--> nombre entier 'int' donné par l'utilisateur") | |
| # On va convertir ce nombre en chaine de charactère | |
| # str(x) prend en parametre x un entier et retourne une chaine de charactère | |
| nombre = str(nombre) | |
| # On regarde le type et la valeur de la chaine de charactère | |
| print(type(nombre), nombre, "--> nombre converti en 'str' chaine de charactère") | |
| # On va maintenant remplacer tous les 1 par des 9 | |
| # On va faire une boucle de 0 à la longueur de notre chaine de charactère moins un. | |
| # La longueur correspond au nombre de charactères (de symboles, de chiffres) | |
| for i in range(len(nombre)): | |
| # Si on trouve le chiffre/symbole/charactere '1' on remplace par '9' | |
| if nombre[i] == '1': | |
| # Cette ligne est un peu bizarre mais en gros elle permet de remplacer le caractère 1 trouvé par 9 dans la chaine de charactere | |
| # Elle prend la chaine de charactère jusqu'à avant la position i, met 9, puis prend le reste de la chaine de charactère après i. | |
| nombre = nombre[:i] + '9' + nombre[i+1:] | |
| # On regarde le type et la valeur de la chaine de charactere | |
| print(type(nombre), nombre, "--> résultat du premier traitement de chaine de caractère sur notre nombre") | |
| # La on peut pas directement faire la multiplication sur la chaine de charactere | |
| # En fait il va nous réécrire deux fois le texte. Pour 9234, il va vous sortir 92349234) | |
| print(nombre * 2, "--> oops mauvaise idée les multiplications sur une chaine de charactere") | |
| print("Maude" * 2, "--> en même temps c'est logique...") | |
| # On va donc convertir ça en entier (int). | |
| # int(x) prend en paramètre une chaine de charactère avec des symboles qui sont des chiffres et retourne un nombre | |
| nombre = int(nombre) | |
| # La on devrait avoir un entier, bien modifié par rapport au début | |
| print(type(nombre), nombre, "--> on a bien de nouveau un type 'int' entier") | |
| # Plus qu'à le multiplier par 2 | |
| nombre = nombre * 2 | |
| print(type(nombre), nombre, "--> Super, les multiplications sur les entiers fonctionnent !") | |
| traitement(1234) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Si on execute le fichier ci-dessus, on obtient le résultat suivant. | |
| <class 'int'> 1234 --> nombre entier 'int' donné par l'utilisateur | |
| <class 'str'> 1234 --> nombre converti en 'str' chaine de charactère | |
| <class 'str'> 9234 --> résultat du premier traitement de chaine de caractère sur notre nombre | |
| 92349234 --> oops mauvaise idée les multiplications sur une chaine de charactere | |
| MaudeMaude --> en même temps c'est logique... | |
| <class 'int'> 9234 --> on a bien de nouveau un type 'int' entier | |
| <class 'int'> 18468 --> Super, les multiplications sur les entiers fonctionnent ! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment