Je suis en train d'apprendre le cour "Apprenez à programmer en Python" et termine la section "Créez des structures conditionnelles".
Je n'arrive pas à comprendre un exemple de la sous-section sur les mots clés and,or,not.
Soit la suite d'instructions à tester en initialisant au préalable par a=5:
Précédée du passage :
"Nous allons chercher à savoir si a n'est pas dans l'intervalle. La variable ne se trouve pas dans l'intervalle si elle est inférieure à 2 ou supérieure à 8. Voici donc le code :"
Or quand je teste la suite d'instructions sus mentionnée dans l'interpréteur, j'obtient la réponse "a est dans l'intervalle.". Renvoi qui contredit les 2 phrases sus mentionnées.
Ai-je omis un détail ?
- Edité par Pedromoney il y a environ 21 heures.
Si tu mets a = 5 :
Donc a est bien supérieur ou égale a 2 ET ( en meme temps ) inférieur ou égale a 8 . Donc ta condition est vrai
Tu peut remplacer le ET par OU et aussi N'EST PAS .
- Edité par 64fauchenicolas 25 février 2019 à 21:53:56
Faire un programme permettant de calculer la somme de la série harmonique suivante : 1+1/2+1/3+1/4 + ………………. + 1/n. La valeur n sera un entier strictement positif demandé à l’utilisateur. L’utilisateur n’a que 5 possibilités pour choisir une valeur comprise nécessairement entre 1 et 100 sinon on met fin au programme.
Je suis entrain de finir les derniers modules du cours Python et je bloque lors de la finalisation du petit programme de selection aléatoire de citation.
En effet, le code se lance bien mais lorsque je veux afficher une citation, en appuyant sur une autre touche que B, j'ai un plantage :
Traceback (most recent call last):
File "C:/Users/Nicolas/Desktop/Netlogo formation/Python.py", line 25, in <module>
File "C:/Users/Nicolas/Desktop/Netlogo formation/Python.py", line 16, in get_random_item
item = my_list[rand_numb]
TypeError: 'set' object does not support indexing
Merci pour votre aide ! Je n'arrive vraiment pas à comprendre, ce doit être un truc tout bête mais qui m'échappe.
Voilà le code que j'ai fait :
import random
quotes = ["Ecoutez-moi, Monsieur Shakespeare, nous avons beau être ou ne pas être, nous sommes !", "On doit pouvoir choisir entre s'écouter parler et se faire entendre."] characters = { "alvin et les Chipmunks", "Babar", "betty boop", "calimero", "casper", "le chat potté", "Kirikou"}
Dans la solution proposée du TP (Réalisez un dictionnaire ordonné), je ne vois pas par quel moyen les valeurs d'un dictionnaire existant où des données en paramètre sont placées dans la « liste valeur » de notre dictionnaire ordonné.
Lors de la phase "__init__" , on a cela :
# On récupère les données de 'base'
for cle in base:
self[cle] = base[cle]
# On récupère les données de 'donnees'
for cle in donnees:
self[cle] = donnees[cle]
On parle du stockage des clés mais comment les valeurs sont-elles stockées ?
Merci à celui où celle qui éclaircira ma lanterne.
Dans la solution proposée du TP (Réalisez un dictionnaire ordonné), je ne vois pas par quel moyen les valeurs d'un dictionnaire existant où des données en paramètre sont placées dans la « liste valeur » de notre dictionnaire ordonné.
Lors de la phase "__init__" , on a cela :
# On récupère les données de 'base'
for cle in base:
self[cle] = base[cle]
# On récupère les données de 'donnees'
for cle in donnees:
self[cle] = donnees[cle]
On parle du stockage des clés mais comment les valeurs sont-elles stockées ?
Merci à celui où celle qui éclaircira ma lanterne.
Bonjour Philippe
Même cours que toi, même blocage, du coup je ne comprends pas le corrigé. Marrant de voir que tu viens juste de poser ta question.
Merci donc à la personne qui pourra nous aider à comprendre
Ce ne sont pas les clés qui sont stockées, ce sont bel et bien des valeurs, associées avec des clés.
Je suis d'accord avec ce que tu dis car c'est la definition même du principe du dictionnaire dans Python mais, dans la fraction de code ci-après, pourrais-tu alors indiquer à quel moment tu peux affirmer tes dires dans la phase __init__ ?
def __init__(self, base={}, **donnees):
"""Constructeur de notre objet. Il peut ne prendre aucun paramètre
(dans ce cas, le dictionnaire sera vide) ou construire un
dictionnaire remplis grâce :
- au dictionnaire 'base' passé en premier paramètre ;
- aux valeurs que l'on retrouve dans 'donnees'."""
self._cles = [] # Liste contenant nos clés
self._valeurs = [] # Liste contenant les valeurs correspondant à nos clés
# On vérifie que 'base' est un dictionnaire exploitable
if type(base) not in (dict, DictionnaireOrdonne):
raise TypeError( \
"le type attendu est un dictionnaire (usuel ou ordonne)")
# On récupère les données de 'base'
for cle in base:
self[cle] = base[cle]
# On récupère les données de 'donnees'
for cle in donnees:
self[cle] = donnees[cle]
Au moment du self[cle] = ... qui fait appel à la méthode __setitem__ de l'objet.
C'est justement ça mon problème. D'où sortent les valeurs ou plutôt, suivant comment sont écrites les données que l'on passe en paramètre comment python va-t-il savoir ce qui est une clé et ce qui est une valeur ?
base et donnees sont des dictionnaires, donc des tables d'association entre clés et valeurs.
for cle in base permet d'itérer sur toutes les clés de base, la valeur est ensuite récupérée à l'aide de base[cle] (une itération sur base.items()serait préférable puisque clé et valeur seraient obtenues directement), c'est ainsi que fonctionnent les dictionnaires : on peut les utiliser avec l'opérateur [] en précisant une clé pour obtenir une valeur.
Et ensuite, l'instruction devient équivalent à self[cle] = valeur ce qui a pour effet d'appeler self.__setitem__(cle, valeur) (c'est la définition de l'opérateur []) donc aucune raison pour que Python confonde les deux.
base et donnees sont des dictionnaires, donc des tables d'association entre clés et valeurs.
Merci entwanne.
Du coup, après avoir relu l'énoncé du tp depuis le début, j'ai compris l'origine de mes interrogations. Il était bien indiqué que le terme « donnees » dans le corrigé fait référence à des couples Clé - Valeurs.
Je travaille sur le cours apprentissage python et j'en suis aux décorateurs. Le dernier exemple donné de controle de type ne fonctionne pas. controler(int, int). Erreur l'argument int n'est pas une liste. J'ai copié le code du cours directement et il ne fonctionne pas!
-Développer et tester 4 algorithmes de Tri en Python (Tri par sélection, Tri par insertion , Tri rapide, Tri par fusion) J'ai besoins d'une aide pour mon exercice svp merci
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
typage structurel ftw
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
typage structurel ftw
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
PB68
typage structurel ftw
PB68
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
PB68
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
entwanne — @entwanne — Un zeste de Python — La POO en Python — Notions de Python avancées — Les secrets d'un code pythonique
PB68