PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.python > Jouer au Loto
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Jouer au Loto

Réponse
 
LinkBack Outils de la discussion
Vieux 09/09/2007, 20h20   #1 (permalink)
fred1599@gmail.com
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Jouer au Loto

Bonjour,

J'aimerais apprendre la notion de classes.

Pour cela j'aimerais créer un petit fichier "py" me permettant de
tirer au sort 7 numéros sur 4 grilles.

Voila comment je vois les choses simples pour le moment, on affinera
ensuite.

J'aurais 4 classes, 1 classe pour chaque grille, que je nommerais
grille1, grille2, grille3 et grille4.

Pour grille1
Créer ma liste de numéros (liste1)
Prendre 1 numéro au hasard entre 1 et 49
Répéter "prendre 1 numéro au hasard entre 1 et 49" 6 fois
Mettre les 7 numéros dans liste1

Pour grille2
Idem grille1

Merci de m'aiguiller sans me donner la réponse, j'aimerais penser
comme vous, et ne pas recopier betement sans comprendre vos codes.

Question 1 : Est-ce que créer une classe grille est concevable est
correct, sachant que j'imagine ma classe comme un objet?

Question 2 : Dans ma façon de penser, est-ce correct ou non? Merci de
m'aider à travailler sur python

A bientot

Je reviens demain soir, vous répondre.

Bye

  Réponse avec citation
Vieux 09/09/2007, 20h40   #2 (permalink)
Mihamina (R12y) Rakotomandimby
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Jouer au Loto

fred1599@gmail.com wrote:
> Bonjour,


Bonjour,

> J'aurais 4 classes, 1 classe pour chaque grille, que je nommerais
> grille1, grille2, grille3 et grille4.


Moi j'aurais plutot tendance à dire qu'il y a une seule classe "Grille",
et 4 instances (grille_1, ..., grille_4) de cette classe.

Sinon, et puisque j'y pense, au niveau de la façon d'écrire le code, je
te conseille ceci: http://www.python.org/dev/peps/pep-0008/ (section
"Naming Conventions") ou tu verras comment "ecrire correctement" le nom
d'une classe et d'une instance.
  Réponse avec citation
Vieux 09/09/2007, 20h44   #3 (permalink)
Mihamina (R12y) Rakotomandimby
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Jouer au Loto

Mihamina (R12y) Rakotomandimby wrote:
> http://www.python.org/dev/peps/pep-0008/ (section
> "Naming Conventions")


http://lapagearegis.free.fr/guidedestyle.html
-> Conventions de Nommage
  Réponse avec citation
Vieux 09/09/2007, 23h24   #4 (permalink)
fred1599@gmail.com
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Jouer au Loto

On 9 sep, 21:44, "Mihamina (R12y) Rakotomandimby" <miham...@rktmb.org>
wrote:
> Mihamina (R12y) Rakotomandimby wrote:
> >http://www.python.org/dev/peps/pep-0008/(section
> > "Naming Conventions")

>
> http://lapagearegis.free.fr/guidedestyle.html
> -> Conventions de Nommage


Ok un truc du genre

class Grille :
a=grille1.Grille [] #création de l'instance grille1
b=grille2.Grille []
c=grille3.Grille []
d=grille4.Grille []

Ici je n'ai pas besoin apparement d'argument pour construire ma classe
il me semble?

Merci pour ton aide


  Réponse avec citation
Vieux 10/09/2007, 01h16   #5 (permalink)
jean-marc pouchoulon
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Jouer au Loto


>
> Sinon, et puisque j'y pense, au niveau de la façon d'écrire le code, je
> te conseille ceci: http://www.python.org/dev/peps/pep-0008/ (section
> "Naming Conventions") ou tu verras comment "ecrire correctement" le nom
> d'une classe et d'une instance.


J'avais noté ca aussi pour les conventions
http://conferences.oreillynet.com/pr...os_goodger.pdf

Pour le faire du code avec une classe je ferais ca mais....

from random import randint

class Grille(list):
def __init__(self):
i = 1
while i <=7:
self.append(randint(0,49))
i += 1

g1 = Grille()
g2 = Grille()
g3 = Grille()
g4 = Grille()

print g1
print g2
print g3
print g4


....une question idiote ca marche mais pourquoi?
je suis un peu surpris de ne pas devoir appeler le contructeur de list
dans le contructeur de Grille.
Désolé d'embrouiller la réponse.


bonne nuit




  Réponse avec citation
Vieux 10/09/2007, 08h08   #6 (permalink)
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Jouer au Loto

fred1599@gmail.com a écrit :
> Bonjour,
>
> J'aimerais apprendre la notion de classes.
>
> Pour cela j'aimerais créer un petit fichier "py" me permettant de
> tirer au sort 7 numéros sur 4 grilles.
>
> Voila comment je vois les choses simples pour le moment, on affinera
> ensuite.
>
> J'aurais 4 classes, 1 classe pour chaque grille, que je nommerais
> grille1, grille2, grille3 et grille4.


AMHA, tu n'a pas compris le principe de base d'une classe. Tu n'a pas
besoin de 4 classes différentes, une seule suffit. Regarde la class int
(les nombres entiers) : c'est la même classes pour tous les entiers, pas
une classe par nombre !-)

> Pour grille1
> Créer ma liste de numéros (liste1)
> Prendre 1 numéro au hasard entre 1 et 49
> Répéter "prendre 1 numéro au hasard entre 1 et 49" 6 fois
> Mettre les 7 numéros dans liste1


Ce que tu décris là est un algorithme, pas un type. Avant toute autre
chose, une classe décrit un type de données, c'est à dire la structure
de données, la plage de valeurs, et les opérations possibles. Dans ton
cas, ta classe Grille serait un ensemble de 7 nombres entier compris
entre 1 et 49. Je te laisse définir les opérations qui te semblent
appropriées, mais tu peux déjà songer à l'égalité (deux grilles sont
elles identiques ?).

mes deux centimes...
  Réponse avec citation
Vieux 10/09/2007, 08h09   #7 (permalink)
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Jouer au Loto

fred1599@gmail.com a écrit :
> On 9 sep, 21:44, "Mihamina (R12y) Rakotomandimby" <miham...@rktmb.org>
> wrote:
>> Mihamina (R12y) Rakotomandimby wrote:
>>> http://www.python.org/dev/peps/pep-0008/(section
>>> "Naming Conventions")

>> http://lapagearegis.free.fr/guidedestyle.html
>> -> Conventions de Nommage

>
> Ok un truc du genre
>
> class Grille :
> a=grille1.Grille [] #création de l'instance grille1


Dis voir... Qu'est-ce que tu dirais de lire un tutoriel Python avant
d'aller plus loin ?

  Réponse avec citation
Vieux 10/09/2007, 08h17   #8 (permalink)
Bruno Desthuilliers
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Jouer au Loto

jean-marc pouchoulon a écrit :
>
>>
>> Sinon, et puisque j'y pense, au niveau de la façon d'écrire le code,
>> je te conseille ceci: http://www.python.org/dev/peps/pep-0008/
>> (section "Naming Conventions") ou tu verras comment "ecrire
>> correctement" le nom d'une classe et d'une instance.

>
> J'avais noté ca aussi pour les conventions
> http://conferences.oreillynet.com/pr...os_goodger.pdf
>
> Pour le faire du code avec une classe je ferais ca mais....
>
> from random import randint
>
> class Grille(list):
> def __init__(self):
> i = 1
> while i <=7:
> self.append(randint(0,49))
> i += 1
>


for i in xrange(1,8):
self.append(randint(1,49))


> g1 = Grille()
> g2 = Grille()
> g3 = Grille()
> g4 = Grille()
>
> print g1
> print g2
> print g3
> print g4
>
>
> ...une question idiote ca marche mais pourquoi?


Pourquoi est-ce qye ça ne marcherais pas ?

> je suis un peu surpris de ne pas devoir appeler le contructeur de list
> dans le contructeur de Grille.


Tu n'a pas surchargé le constructeur de list, tu n'a donc pas à
l'appeler. Note bien que __init__() n'est *pas* le constructeur, mais
l'initialiseur. Le constructeur, c'est __new__().

Accessoirement, sous-classer liste n'est probablement pas la meilleur
chose à faire ici. Une grille de loto n'est définitivement pas une liste
(sémantique et invariants différents). Que tu utilise une liste pour
implémenter ta grille, c'est ton choix (et une solution possible), mais
ça ne devrait pas être visible.

  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 11h18.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,17596 seconds with 16 queries