Skip to content

Instantly share code, notes, and snippets.

@superboum
Created August 29, 2016 09:54
Show Gist options
  • Select an option

  • Save superboum/9f2f55aafc7befe26f14e314710fcd63 to your computer and use it in GitHub Desktop.

Select an option

Save superboum/9f2f55aafc7befe26f14e314710fcd63 to your computer and use it in GitHub Desktop.
Les types 'int' et 'str' en python
# 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)
# 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