FAQ PythonConsultez toutes les FAQ

Nombre d'auteurs : 16, nombre de questions : 313, dernière mise à jour : 10 juillet 2017  Ajouter une question

 

Cette FAQ a été réalisée à partir des questions posées sur le forum Python complétées par d'autres questions qui pouvaient nous sembler intéressantes de traiter. Toutefois il se peut que les réponses apportées contiennent des erreurs, imprécisions ... Vous pouvez dans ce cas contacter un des membres de la rédaction pour lui faire part de vos remarques.

L'équipe Python de Developpez.


SommaireExercices CorrigésJouons un peuCorrigés pour les nuls (7)
précédent sommaire suivant
 

Rappel de l'énoncé :

Dans une console Python (ou IDLE), faites la somme des deux entiers 6789456123 et 250417963. Combien obtenez-vous ?

Corrigé :

Il suffit de taper :

Code shell : Sélectionner tout
1
2
>>> 6789456123 + 250417963 
7039874086

Note : les symboles '>>>' représentent l'invite de commande de la console Python, vous ne devez pas les taper au clavier. N'entrez que ce qui suit ces symboles.

Mis à jour le 10 septembre 2014

Rappel de l'énoncé :

Dans une console Python (ou IDLE), faites le produit de l'entier 1250 et du nombre à virgule flottante 1.25e3. Combien obtenez-vous ?

Le résultat obtenu est-il un entier ou un nombre à virgule flottante ?

Corrigé :

Il suffit de taper :

Code shell : Sélectionner tout
1
2
>>> 1250 * 1.25e3 
1562500.0

Note : les symboles '>>>' représentent l'invite de commande de la console Python, vous ne devez pas les taper au clavier. N'entrez que ce qui suit ces symboles.

Du point de vue de la rigueur stricte le résultat obtenu est un nombre à virgule flottante (float).

Toutefois, pour le cas ici présent, il est possible d'assimiler ce résultat à un entier, bien que ce ne soit pas parfaitement exact.

Mis à jour le 10 septembre 2014

Rappel de l'énoncé :

Dans une console Python (ou IDLE), faites la division entière des nombres à virgule flottante 3.1415 sur 6.283. Combien obtenez-vous ?

Pourquoi ?

Corrigé :

Deux façons de faire : soit vous utilisez le transtypage int() d'une division en virgule flottante, soit vous exploitez les finesses du langage Python, grâce à son opérateur de division entière '//'.

Le transtypage :

Code shell : Sélectionner tout
1
2
>>> int(3.1415/6.283) 
0

L'opérateur Python :

Code shell : Sélectionner tout
1
2
>>> 3.1415//6.283 
0.0

Note : les symboles '>>>' représentent l'invite de commande de la console Python, vous ne devez pas les taper au clavier. N'entrez que ce qui suit ces symboles.

Les deux méthodes se valent à peu près, même si les puristes vous diront que l'opérateur Python '//' est à préférer dans les expressions mathématiques appliquées au code, car il respecte le typage de l'expression (la division entière de nombres à virgule flottante donne un résultat entier à virgule flottante et la division entière de nombres entiers donne un résultat entier tout court).

Pourquoi obtient-on zéro (0) ?

Il suffit d'évaluer la division simple de l'expression pour le comprendre :

Code shell : Sélectionner tout
1
2
>>> 3.1415/6.283 
0.5

Le résultat obtenu (0.5) étant inférieur à 1, sa partie entière (celle obtenue par division entière) vaudra par conséquent zéro (0).

Mis à jour le 10 septembre 2014

Rappel de l'énoncé :

Dans une console Python (ou IDLE), comment feriez-vous pour déterminer si le nombre 53 est un multiple de 318 ?

S'agit-il effectivement d'un multiple ?

Corrigé :

Avec des nombres entiers, il suffit de rechercher le reste de la division euclidienne de 318 par 53.

On appelle ce reste le modulo de 318 par 53 et on le note avec le signe '%'.

Code shell : Sélectionner tout
1
2
>>> 318 % 53 
0

Note : les symboles '>>>' représentent l'invite de commande de la console Python, vous ne devez pas les taper au clavier. N'entrez que ce qui suit ces symboles.

Ici, le reste de la division euclidienne de 318 par 53 vaut zéro (0), cela signifie donc bien que 53 est effectivement un multiple de 318.

Mis à jour le 10 septembre 2014

Rappel de l'énoncé :

Dans une console Python (ou IDLE), effectuez la concaténation de la chaîne de caractères "menu" avec le nombre entier 3.

Quel(s) problème(s) rencontrez-vous ? Comment le(s) résoudre ?

Corrigé :

Sachant que dans Python, l'opérateur de concaténation est le signe '+', on est tenté d'écrire tout simplement :

Code shell : Sélectionner tout
>>> "menu" + 3

Note : les symboles '>>>' représentent l'invite de commande de la console Python, vous ne devez pas les taper au clavier. N'entrez que ce qui suit ces symboles.

Malheureusement, l'erreur suivante s'affiche dans la console :

Code shell : Sélectionner tout
1
2
3
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
TypeError: cannot concatenate 'str' and 'int' objects

Il nous faut donc comprendre qu'une concaténation ne peut s'opérer qu'entre deux chaînes de caractères.

On doit par conséquent convertir le nombre entier 3 en chaîne de caractères :

Code shell : Sélectionner tout
1
2
>>> "menu" + str(3) 
'menu3'

Et là, ça fonctionne correctement.

Mis à jour le 10 septembre 2014

Rappel de l'énoncé :

Soit la phrase "Josette aime les poules et les canards".

Dans une console Python (ou IDLE), comment procéderiez-vous pour savoir si le mot "Poules" se trouve bien dans cette phrase ?

Que répond le résultat de votre test ? Pourquoi ?

Corrigé :

Il faut utiliser le mot-clé réservé in du langage Python :

Code shell : Sélectionner tout
1
2
>>> "Poules" in "Josette aime les poules et les canards" 
False

Note : les symboles '>>>' représentent l'invite de commande de la console Python, vous ne devez pas les taper au clavier. N'entrez que ce qui suit ces symboles.

On constate que le résultat du test répond False (faux). Cela signifie que le mot "Poules" n'a pas été trouvé dans la phrase de référence.

Pourquoi ?

Parce que la recherche d'un mot dans une phrase est sensible à la casse, elle fait la différence entre les majuscules et les minuscules.

Si nous avions cherché :

Code shell : Sélectionner tout
1
2
>>> "poules" in "Josette aime les poules et les canards" 
True

Le résultat aurait été True (vrai).

Il faut donc faire attention aux majuscules/minuscules des mots que l'on cherche dans une phrase.

Mis à jour le 10 septembre 2014

Rappel de l'énoncé :

Soit la phrase "Jean-Pierre mange des tomates".

Dans une console Python (ou IDLE), comment fractionneriez-vous cette phrase en une liste Python de mots séparés ?

Corrigé :

Il faut se servir de la méthode .split() propre aux chaînes de caractères (str).

Code shell : Sélectionner tout
1
2
>>> "Jean-Pierre mange des tomates".split() 
['Jean-Pierre', 'mange', 'des', 'tomates']

Note : les symboles '>>>' représentent l'invite de commande de la console Python, vous ne devez pas les taper au clavier. N'entrez que ce qui suit ces symboles.

Documentation officielle Python : méthode str.split()

Mis à jour le 10 septembre 2014

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2018 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Contacter le responsable de la rubrique Python