Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

122 commentaire(s) de aera group sur des sources sur tout CodeS-SourceS

Le : 02/05/2009 12:06:35
Source : TEST MUSIQUE INTERVALLES
NON ÇA NE MARCHE PAS !!!! :(

En Python (tout du moins jusqu'à la version 2.5) il est INTERDIT d'utiliser des nom de variables contenant des accents et python GÉNÈRE UNE ERREUR en signalant ce problème d'accentuation. Voila où la principale erreur du programme. De plus à la ligne 87 il y "aurait" une erreur d'alignement des teste (perso je l'ai pas vu mais Python génère cette erreur à cette ligne ! Un simple ré-alignement sous IDLE permet de régler ce problème).

Voici comment on peut faire de ton pseudo code un vrai programme ...


# -*- coding: cp1252 -*-

import random

#####################
# Programme corrigé #
# Intervalles Music #
# Par Aéra / ORINYN #
#####################


    # ============== Variables de texte ============== #
"Utile pour changer de langue ..."

t0 = u"Bonjour et bienvenu dans notre programme d'entrainement musical. Répondez aux 20 questions proposés, nous définirons votre niveau."    
t1 = u"Quelle est la composition d'"
t2 = u" ? Par exemple si la réponse est 6 tons et 3 demi-tons, tapez 7.5 sans rajouter \"ton(s)\" derrière (attention! Pour les décimales, ce n'est pas une virgule su'il faut mettre mais un point !)."
t3 = u"Bien, c'est la bonne réponse, vous gagnez 1 point."
t4 = u"Désolé, ce n'est pas la bonne réponse."
t5 = u"La bonne reponse etait "
t6 = u", vous êtes nul(le) ! XD"
t7 = u", vous êtes mauvais(e) ! :s"
t8 = u", votre niveau est passable. o_o"
t9 = u", vous êtes plutôt bon(ne). :) Mais il y a encore des progrès à faire !"
t10 = u", c'est très bien ! Encore un petit effort et ce sera la perfection ! =)"
t11 = u", c'est exellent ! Vous n'avez plus vraiment besoin de vous exercer sur ce programme ! :D"
t12 = u"Voulez vous rejouer ? (Oui/Non)"
t13 = u"Nous n'avons pas compris votre réponse. La réponse attendu est "
t14 = u"un nombre."
t15 = u"oui ou non"
t16 = u"Vous avez "
t17 = u" point(s) sur "
t18 = u"."
t19 = u"Il reste "
t20 = u" question(s)."
t21 = u"Question n°"
t22 = u"Vous avez terminer l'exercice. Avec "

r0 = [u"oui",u"non"] # Réponses attendues sans majuscules

q0 = [(u"un unisson juste",u"0"),(u"un unisson augmenté",u"0.5"),(u"une seconde mineure",u"0.5"),(u"une seconde majeure",u"1"),(u"une seconde augmentée",u"1.5"),
      (u"une tierce mineure",u"1.5"),(u"une tierce majeure",u"2"),(u"une quarte diminuée",u"2"),(u"une quarte juste",u"2.5"),(u"une quarte augmentée",u"3"),
      (u"une quinte diminuée",u"3"),(u"une quinte juste",u"3.5"),(u"une quinte augmentée",u"4"),(u"une sixte mineure",u"4"),(u"une sixte majeure",u"4.5"),
      (u"une septième diminuée",u"4.5"),(u"une septième mineure",u"5"),(u"une septième majeure",u"5.5"),(u"une octave diminuée",u"5.5"),(u"une octave juste",u"6"),(u"une octave augmentée",u"6.5")] # Liste des questions avec réponse


def question(texte,rep=1):
    while 1:
        print texte
        a = raw_input(u'>> ')
        if rep == 1:
            try:
                float(a)
            except:
                print t13 + t14
                print u""
            else:
                print u""
                return a
        else:
            if a.lower() in r0:
                print u""
                return a.lower()
            else:
                print t13 + t15
                print u""

def selec_question():
    while 1:
        a = random.randint(0,len(q0)-1)
        if not(a in question_sortie):
            question_sortie.append(a)
            return q0[a]


    # ============== Programme Principale ============== #

print t0
print u"\n"

i = 0
pt = 0
question_sortie = [] # Pour ne pas mettre deux fois les mêmes questions

while 1:
    i = i + 1
    print t21 + str(i)
    
    qu = selec_question()
    rep = question(t1 + qu[0] + t2)
    
    if rep == qu[1]:
        pt = pt + 1
        print t3
    else:
        print t4
        print t5 + qu[1] + t18

    print t16 + str(pt) + t17 + str(i) + t18    

    if i < 20:
        print t19 + str(20-i) + t20
        print u""
    else:
        if pt>18:
            temp = t11
        elif pt>15:
            temp = t10
        elif pt>12:
            temp = t9
        elif pt>9:
            temp = t8
        elif pt>5:
            temp = t7
        else:
            temp = t6
        print u""
        print t22 + str(pt) + t17 + str(i) + temp
        
        print u"\n\n"
        rep = question(t12,2)
        if rep == r0[1]:
            break
        else:
            i = 0
            pt = 0
            question_sortie = []
            print u'\n\n'


Le : 01/05/2009 19:37:24
Source : TEST MUSIQUE INTERVALLES
Les Accents sont interdits dans les noms de variables !!!!! Voila l'erreur


Le : 09/03/2009 14:20:26
Source : JEU DU PENDU
En réalité un programme linéaire est un problème dans lequel intervient des équations linéaires (donc non différentiel : sans dérivé ou intégration) et des contrainte sur les variables. En gros, tous programmes ne contenant pas de classes, d'objets et une simple équation mathématiques (une suite de test) - en fait ça ne concerne que la partie algorithme, les entrées de donnée (raw_input ou input en Python) et même d'une certaine façon les vérifications des données sont difficile à classé du fait que l'on attend l'entrée de l'utilisateur ...

Mais au lieu de s'embêter avec des définitions, je préfère parlé du programme en lui même. Utilisé des objets n'est pas une preuve de compétence ! Ici dans ce programme ça n'a aucun intérêt, le programme n'a pas de réel but en soit si ce n'est divertir de manière simple l'utilisateur ! On pourrait imaginer une classe Jeu qui géré les points du joueur, en vu d'en amélioré la "porté" et pourquoi pas ensuite tenté la gestion du jeu en réseau.

Le fait que le noyau linux soit sans objets m'étonne, mais cela dit, tous langage de haut niveau tel que Python ne peut fonctionner directement avec un micro-processeur, il faut d'abord le compiler en un langage plus simple généralement l'assembleur qui n'a pas de classes ! Une classe peut être convertit (de manière compliquer certes) en un programme classique.

En résumer, utiliser les classes la où ça n'apporte aucun intérêt est tous simplement idiot, ici la source ne demande pas cela (à voir pour de possible améliorations dans le future) !


Le : 07/03/2009 18:02:34
Source : JEU DU PENDU
Il y a une erreur : lorsque l'on trouve le mot en dernière chance, i = 12. Le résultat affiche "bravo" et ensuite le test suivant trouve que 13-1 = 12 = i et il en déduit à tore que j'ai perdu !
De plus il n'y a pas de vérification réel de l'entrée de l'utilisateur : C'est une bonne chose d'avoir vérifié que l'utilisateur utilise 1, 2 ou 3 dans le menu, mais si je rentre une lettre, ton programme bug quand il faut le transformer en entier autant utilisé input plutôt que raw_input !
De même si j'utilise des majuscules dans les propositions, il ne reconnait pas les caractères.
Voici ce qui aurait été souhaitable :






# -*- coding: cp1252 -*-

import random

def cache(mot,lettre):
    "Cacher les lettres inconnues avec nb lettres > 2 "
    nb = len(mot)
    resultat = ""
    for i in range(nb):
        if i == 0 or i == nb-1 or mot[i] in lettre:
            resultat += mot[i]
        else:
            resultat += "*"
    return resultat

def liste_element(liste,espace=1):
    "Créé une liste de carractères des lélément d'une suite"
    if len(liste) == 0:
        t = "Aucune\n"
    else:
        t = ""
        for i in liste:
            t += i + "\n"
    if espace: # On passe une ligne ?
        return t
    else:
        return t[:len(t)-1]

def detreminer_mot():
    "Renvoie un mot au hazard"
    liste = ["fromage","alambique","casserole","programme","television","logiciel","avion","gourmandise"\
        ,"telechargement","illegalite","instrument","tondeuse","ordinateur","programmation","technologie",\
        "diffusion","estampage","navigation","hasardeux","fondations","artistique","utilisation","imbuvable",\
        "legume","innovation","constitution","iconique","evidence","invitation","cavite","lampadaire","limonade"\
                ,"bouteille","concours","culture","psychologie","cardiologue","pharmaceutique","laboratoire","scolaire"\
                ,"rasoir","medicament","perfusion","pansement","forage","aiguille","costume","danser","contemporain"\
                ,"mondialisation","environnement","ombrelle","vetement","sentiment","congelateur","spatule","chandelier"\
                ,"bateau","commandant","paquerette","coquelicot","robinetterie","armoiries","boutique","fantome","plaisanterie"\
                ,"ironique","electricite","ingenieur","infirmiere","informatique","biologie","citoyennete","chaussette","confiseries"\
                ,"glacier","bistrot","opticien","elegant","aquatique","piscine","romantique","antiquite","automobile","italienne"]
    return liste[random.randint(0,len(liste)-1)]

def lettre_in_mot(mot,lettre):
    "Vérifie que tous les carractère d'un mot soit dans une liste"
    err = 0
    for i in mot:
        if i in lettre:
            err = 0
        else:
            err = 1
            break
    return not(err)

def question(question,rep_possible=[],lettre=[],err="Cette réponse n'était pas attendu"):
    "Pose une question à l'utilsateur et vérifie sa réponse"
    while 1:
        a = raw_input(question + "\n>> ")
        if  (a in rep_possible or rep_possible == []) and (lettre_in_mot(a,lettre) or lettre == []):
            return a
        else:
            print "\nErreur : " + err + '\n'

def jeu():
    "Lance le jeu"
    nb_essai = 13
    lettre_use = []
    mot_use = []
    gagne = 0
    l=[] # Liste de toute les lettres de l'alphabet sans accent
    for i in range(65,91):
        l.append(chr(i))
    for i in range(97,123):
        l.append(chr(i))
    
    print "Début de la séance de jeu"
    mot = detreminer_mot()
    print "Un mot à été déterminer au hazard\n"
    
    while nb_essai > 0:
        print cache(mot,lettre_use) + " (" + str(len(mot)) + " lettres)"
        q = "Faites une proposition (" + str(nb_essai) + " essais)"
        r = question(q,lettre=l,err="Seules les lettres sans accent sont autorisées")

        if len(r)==1 and not(r.lower() in lettre_use):
            lettre_use.append(r.lower())
            if r.lower() in mot:
                print "Lettre trouvée\n"
            else:
                print "Cette lettre n'appartient pas au mot recherché \n"
            nb_essai = nb_essai - 1
        
        elif len(r)==1 and r in lettre_use:
            print "Vous avez déja utilisé cette lettre !\nRappel : Lettres déja utilisées :"
            print liste_element(lettre_use,0)
            print "Rappel : Mots déja proposés :"
            print liste_element(mot_use)

        elif len(r)>1 and not(r.lower() in mot_use) and r.lower()<>mot:
            mot_use.append(r.lower())
            print "Ce mot n'est pas le mot recherché\n"
            nb_essai = nb_essai - 1

        elif len(r)>1 and r.lower()==mot:
            gagne = 1
            break

        elif len(r)>1 and r.lower() in mot_use:
            print "Vous avez déja utilisé ce mot !\nRappel : Lettres déja utilisées :"
            print liste_element(lettre_use,0)
            print "Rappel : Mots déja proposés :"
            print liste_element(mot_use)

    if gagne:
        print "Bravo, vous avez trouvé le bon mot"
    else:
        print "Domage, vous n'avez pas trouvé le mot qui été : " + mot

    print "\n\n Fin de la séance de jeu \n\n\n"
    menu()
            
def menu():
    "Menu du jeu"
    texte = """\t\t-- LE PENDU --
1. Jouer
2. Instructions
3. Quitter"""
                
    saisie = question(texte,rep_possible=["1","2","3"],err="Les réponses attendu sont 1, 2 ou 3")
                
    if saisie == "1":
        print "\n\n"
        jeu()
    elif saisie == "2":
        print """\n\t\t-- Règles du jeu --
Des mots sont tirés au sort parmi une base de donnée. Seule la première et dernière lettre\
sont affichées, les autres lettres étant remplacées par des étoiles. Le but du jeu est d'essayer de\
retrouver le mot. Vous pouvez saisir vos réponses lettres par lettre ou avec l'intégralité du mot.
Les majuscules et les caractères spéciaux (accents,...) sont volontairement omis pour plus de facilité.\n"""
        menu()
    else:
        print "\nAu revoir"

menu()




Je met 6/20 tout de même, vois si tu peux améliorer


Le : 07/02/2009 22:10:21
Source : SIMULATION DE LOTO
Ce n'est pas un problème de version de Python, mais un problème de module : WxPython. C'est une bibliothèque graphique, qui n'est pas de base dans python. Regarde le cadre "conclusion" pour voir comment l'installer.

Connaitre des systèmes électroniques, c'est commencer à la base ! Actuelement, tu utilse Python sans comprendre ce qui se passe réelement, tu n'as aucune idée de la façon dont Python foncionne principalement parce que tu ne sais pas comment fonctionne un micro processer. En sachant comment cela marche, tu comprends mieux, et donc tu as une vision plus global des choses.
La programmation, c'est l'art d'apprendre à une machine a faire ce que l'on attend d'elle. Ca ne s'apprend pas dans les livres. Je te pose une colle (definition : execice difficile) : comment ferais tu pour créer un logiciel pernettant de créé un emploie du temps des classes d'un Lycée ?
Personnellement j'y ai déjà réfléchis, ca demende une analyse poussé, mais aucune connaissance technique pour établir les grandes lignes ...

Trouver ces solutions n'est pas donné à tous le monde certaines personnes ont un espris plus orienté dans ce sens d'autres préfère étudier Molière ... Comme dirait mon prof, certaine personnes ont "une sorte de 2ème vue parralèle" où le problème se résout de lui même !

Ensuite, pour faire des programme plus poussé, une connaissance d'un pc ou d'un micro est necessaire : je pense à la programmation machine (robotique) ou pour serveur Web.

Inutile de vouloir allez trop vite, cette source demende une connaissance des classes ...


Le : 07/02/2009 16:41:41
Source : SIMULATION DE LOTO
Bonjour Lutcho74, pour les nombres aléatoires, je te renvoie page 140 du livre de Gérard Swinnen que tu as gratuitement à cette adresse :http://www.cifen.ulg.ac.be/inforef/swi/download/python_notes.pdf
Il peut également te servir pour commencer avec Python !

Personnellement j'ai commencer Python en 2nd (15/16 ans je ne sais plus), mais j'ai commencer à programmer vers 12 ans. L'age n'est pas important, je me rend compte que plus le temps passe, plus je sais faire de chose, mais c'est grâces à de meilleurs connaissance des systèmes électroniques, pas de programmations.
Je ne comprend pas pourquoi tu ne peux pas utiliser mon code ? La partie sur les nombres aléatoires est ici : http://files.codes-sources.com/fichier.aspx?id=42621&f=Loto+(par+A%e9ra+Group)+%5bMise+%e0+jour+-+1%5d%5cLoto.py)
_________________
Aéra, what else ?


Le : 07/02/2009 16:26:25
Source : SERVEUR WEB EN PYTHON.
Ta méthode fonctionne, c'est ce que je souhaitais faire merci Xeolin, je te tiens au courant de l'avancer du projet ...


Le : 01/02/2009 11:56:18
Source : PIERRE FEUILLE CISEAUX AVEC TUX DROID
Bonjour,

Quand je dis que tu as commi une erreur, j'ai bien précisé que c'est de mon point de vu car certe, ton programme fonctionne. Pourquoi dis je que c'est une erreur, car la "sous fonction" que tu as créé ne peu pas être appeler (ba oui, pour l'exécuter il faut que tu la créé grace à la fonction "principale"). Plus garve, à chaque fois que tu appel la fonction "buttonAction" tu créé la fonction "f", mais elle ne se détruit pas !!! En fait des que tu appuis sur un bouton tu créé une fonction f qui est utilisé une fois mais qui n'est pas détruite et qui prend de la place dans la mémoire vive ! lambda créé une fonction l'exécute puis la détruit ! La diférence est là.

Pour l'inetrface, ca fait 3 ans que je ne fait plus de Tk et il ma falut 2 min 27s pour ajouter les résultats dans la fenêtre tu pourrais essayer de faire cette petite modification


Le : 01/02/2009 11:22:10
Source : SERVEUR WEB EN PYTHON.
softghost : Je ne comprend pas ta réponse (64 bits ??!!) ! Le problème n'est pas l'encodage de l'image (j'ai utiliser comme Xeolin imageshack pour résoude TEMPORAIREMENT le problème) mais bien l'instruction qui permer d'allez chercher l'image sur le disque dure !
En css, l'utilisation de l'instruction "url(adresse)" fonctionne bien : Si on créé sur le disque dure un fichier html et dans le même répertoire l'image, il suffit de taper "url(nom_de_l_image.gif)". Or ici on créé le code html sans passer par un fichier html, ce que jouhaite savoir c'est quel est l'adresse que je dois taper !


Le : 30/01/2009 14:43:11
Source : SERVEUR WEB EN PYTHON.
Bonjour Xeolin,

J'ai essayer de refaire un serveur sur mon pc afin de préparé un pseudo site (Et mal heureusement je n'ai pas trouvé d'éditeur web à mon gout, je dois donc apprendre le css le soir à 2h du math après les devoirs (vive la prépa) :( que merde) mais j'ai un pb avec mes images : n'ayant de connexion internet ni de serveur, c'est mon pc qui fait serveur et j'utilise "localhost" pour simuler le site !!!
Seulement voila, comment faire pour ajouter des image ? Tu utilises imageshack, mais si on les héberge sur le serveur (la machine pas le programme :p) comment faire (ici le pb c'est comment lui donner l'adresse du dossier sur le disque dure du pc) !!!

Je te remercies de ta réponse d'avance, bonne journée à toi (et autres aussi :p) et à la prochaine ciao

Aéra, What else ?



1 2 3 4 5 6 7 8 9 10 11 12


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.