IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

problème appel de fonction


Sujet :

Python

  1. #1
    Membre averti
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Par défaut problème appel de fonction
    bonjour, j'utilise python idle, et j'ai un problème pour appeler une fonction.

    Ce que j'ai fait :
    - j'ai créé ma fonction : def rotation(point, angle) : etc
    - je défini un point P
    - j'appelle ma fonction pour voir si ça marche : print rotation(P,90)
    et ça ne marche pas, pourtant il me semble bien que quand j'ai écris ce programme sous pythonwin ça fonctionnait, qqn sait pourquoi ?

  2. #2
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    bonjour,

    peux-tu poster ton code pour que l'on puisse t'aider.

    merci

  3. #3
    Membre averti
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Par défaut
    Voilà mon code, jusqu'à l'endroit où ça bloque :
    ( c'est le code d'un TD que j'avais fait sous pythonwin, ça marchait, maintenant je veux le lancer depuis mon pc sur lequel y a idle et ça ne marche plus, il doit y avoir une différence de synthaxe entre win et idle. Le but du programme est de créer une animation où on voit un cube se translater et tourner suivant les 3 dimensions)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    import pygame,math,time
    import numpy as np
     
     
    RED=(255,0,0)
    GREEN=(0,255,0)
    BLUE=(0,0,255)
    BLACK=(0,0,0)
    GRAY=(128,128,128)
    WHITE=(255,255,255)
    YELLOW=(0,255,255)
     
     
    def drawFace(screen,face,color=(0,0,255),echelle=200,centre=(512,400)):
        npoints=face.shape[0]
        for i in range(0,npoints-1):
            pygame.draw.aaline(screen, color, \
                  (centre[0]+echelle*face[i,0]/face[i,2], centre[1]-echelle*face[i,1]/face[i,2]), \
                  (centre[0]+echelle*face[i+1,0]/face[i+1,2], centre[1]-echelle*face[i+1,1]/face[i+1,2]))
        pygame.draw.aaline(screen, color, \
              (centre[0]+echelle*face[npoints-1,0]/face[npoints-1,2], centre[1]-echelle*face[npoints-1,1]/face[npoints-1,2]), \
              (centre[0]+echelle*face[0,0]/face[0,2], centre[1]-echelle*face[0,1]/face[0,2]))
     
    def cube(L):
        faceA=np.matrix([[float(L)/2,-float(L)/2,float(L)/2],[float(L)/2,float(L)/2,float(L)/2],[float(L)/2,float(L)/2,-float(L)/2],[float(L)/2,-float(L)/2,-float(L)/2]])
        faceB=np.matrix([[float(L)/2,float(L)/2,float(L)/2],[-float(L)/2,float(L)/2,float(L)/2],[-float(L)/2,float(L)/2,-float(L)/2],[float(L)/2,-float(L)/2,-float(L)/2]])
        faceC=np.matrix([[float(L)/2,-float(L)/2,float(L)/2],[float(L)/2,float(L)/2,float(L)/2],[-float(L)/2,float(L)/2,float(L)/2],[-float(L)/2,-float(L)/2,float(L)/2]])
        faceD=(-1)*faceA
        faceE=(-1)*faceB
        faceF=(-1)*faceC
        return [faceA, faceB, faceC, faceD, faceE, faceF]
     
    cube(2)
     
     
    screen = pygame.display.set_mode((1024, 800))
    running = 1
     
     
     
    face1=np.matrix([[0.5,-0.5,3],[-0.5,0.5,3],[0.5,0.5,3],[0.5,-0.5,3]])
    face2=np.matrix([[-3.5,-0.5,3],[-3.5,0.5,3],[-2.5,0.5,3.5],[-2.5,-0.5,3.5]])
    face3=np.matrix([[2.5,-0.5,3.5],[2.5,0.5,3.5],[3.5,0.5,3],[3.5,-0.5,3]])
     
     
     
    def translation(face, dx, dy,dz):
        X=np.matrix([[dx,0,0],[dx,0,0],[dx,0,0],[dx,0,0]])
        Y=np.matrix([[0,dy,0],[0,dy,0],[0,dy,0],[0,dy,0]])
        Z=np.matrix([[0,0,dz],[0,0,dz],[0,0,dz],[0,0,dz]])
        T=X+Y+Z
        return face+T
     
     
     
    def rotation(point,a):
        M=[[math.cos(a),math.sin(a),0],[-math.sin(a),math.cos(a),0],[0,0,1]]
        R=(point)*M
        return R
     
    P=np.matrix([0,0,1])    
    print rotation(P,90)

  4. #4
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Si tu ouvres une invite de commande et que tu te places dans le dossier contenant ton script, est-ce que la commande suivante fonctionne?
    (en remplacant mon_script par le nom de ton script, bien sûr).

  5. #5
    Membre averti
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Par défaut
    rien ne se passe si j'ouvre une nouvelle fenêtre et que je fais ce que tu dis.
    Mon code est bon ? Il y a pas une erreur de syntaxe ?
    Si je le lance, il me dit qu'il y a une erreur de synthaxe dans la dernière ligne, mais je ne vois vraiment pas quoi changer.

  6. #6
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    poste ton erreur, s'il te plait.

  7. #7
    Membre averti
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Par défaut
    ça me met invalide synthax et ça surligne en rouge le mot rotation dans ma dernière ligne.

    Si je supprime les lignes où je teste mes fonctions, il me dit que numpy n'existe pas, donc je dois pas l'avoir sur mon PC, vous savez où je peux le télécharger ?

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    N'aurais-tu pas installé Python 3.x alors que ton script utilise la syntaxe 2.x ?
    Change la dernière ligne en ceci (print est devenu une fonction en 3.x):
    PS: dans 'syntaxe' il n'y a pas de 'h'

  9. #9
    Membre averti
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Par défaut
    ouiiiiiiiiiii c'est ça !! merci beaucoup !
    Et pour numpy, qqn sait où je peux le télécharger ?

  10. #10
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 815
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 815
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par luckylucky Voir le message
    Et pour numpy, qqn sait où je peux le télécharger ?
    http://sourceforge.net/projects/numpy/files/
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  11. #11
    Membre averti
    Inscrit en
    Février 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 16
    Par défaut
    arf, ce lien est pour la version 2.6, t'as pas un lien pour la version 3.1 stp ?

  12. #12
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Par défaut
    AFAIK, numpy n'a pas encore été porté sous Python 3.
    Si tu ne peux pas t'en passer, tu devrais plutôt installer Python 2.6.

Discussions similaires

  1. problème appel de fonction
    Par pepsi33 dans le forum C++
    Réponses: 7
    Dernier message: 30/09/2007, 14h03
  2. Problème appel de fonction
    Par pepsi33 dans le forum C++
    Réponses: 1
    Dernier message: 30/09/2007, 11h40
  3. problème appel à une fonction pl/sql
    Par tommey dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2007, 14h19
  4. [PHP-JS] Problème appel de fonction php
    Par Didibzh dans le forum Langage
    Réponses: 10
    Dernier message: 12/06/2007, 16h55
  5. Réponses: 10
    Dernier message: 08/12/2006, 02h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo