Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/11/2022, à 10:09

jeremy318

RESOLU: Petit prog en python3/eric6

Bonjour à tous et toutes, quelle idée de se remettre à la programmation à 72 ans! J'écris avec Eric6 un programme de "Coding, HS n°18, p79" et j'ai un pb au debugage il me sort "error: invalid character in identifier". Je suis coincé malgré plusieurs tentatives de correction (je dois avouer que c'est mon premier prog) et mon ignorance est immense. Voici la partie en faute, ligne 13: pen.write..................

    #           Limites du terrain
            if balle.ycor()>290:
                balle.sety(290)
                balleydirection=balley-direction*-1
            
            if balle.ycor()<-290:
                balle.sety(-290)
                balleydirection=balley-direction*-1
                       
            if balle.xcor() > 390:
                balle.goto(0,0)
                balle_dx = balle_dx * -1
                joueur_a_score = joueur_a_score + 1
                pen.clear()
                pen.write(«Joueur A: {} Joueur B: {} «.format(joueur_a_score, joueur_b_score),align=»center»,font=(»Monaco»,24,»normal»))
                os.system(«son_balle_contre_mur.wav&»)
            if (balle.xcor()) < -390: # Left width raquette Border
                balle.goto(0,0)
                balle_dx = balle_dx * -1
                joueur_b_score = joueur_b_score +1
                pen.clear()
                pen.write(«Joueur A: {} Joueur B: {} «.format(joueur_a_score, joueur_b_score),align="center, font=('Monaco',24, "normal"))
                os.system(«son_balle_contre_mur.wav&")

Je suppose que le 24 est en cause mais je suis sec là dessus, alors si vous avez des idées, je suis preneur.
Merci de votre indulgence.
Résolu: Il y avait mes erreurs de frappe, des erreurs dans le magazine. Merci à vous pour votre aide. A+

Dernière modification par jeremy318 (Le 31/01/2023, à 15:37)

Hors ligne

#2 Le 23/11/2022, à 10:30

pingouinux

Re : RESOLU: Petit prog en python3/eric6

Bonjour,
Je pense qu'il s'agit des caractères : « »

Hors ligne

#3 Le 23/11/2022, à 10:34

Compte supprimé

Re : RESOLU: Petit prog en python3/eric6

Bonjour,
Bienvenu smile
Le code a été recopié à la main, ou copié/collé?
Manifestement la syntaxe est erronée.
Ce sont des guillemets qu'il te faut utiliser pas des chevrons:

 pen.write("Joueur A: {} Joueur B: {}".format(joueur_a_score, joueur_b_score),align="center",font=("Monaco",24,"normal"))

ps: le code n'a pas été écrit par une personne qui maitrise python... Aussi, je ne m'en servirais pas comme base d'apprentissage...

ps2: Par ailleurs os.system(«son_balle_contre_mur.wav&") ne peut pas fonctionner. hmm
éventuellement os.sytem("aplay son_balle_contre_mur.wav&") serait susceptible de fonctionner, mais pourquoi appeler une commande du shell, alors que python sait faire?
De plus en ayant recours à os.system(), le programme n'est plus portable sur d'autres os (autres que basés sur Debian)...

Dernière modification par Compte supprimé (Le 23/11/2022, à 11:46)

#4 Le 23/11/2022, à 19:33

jeremy318

Re : RESOLU: Petit prog en python3/eric6

Bonsoir pingouinux et MPython Alaplancha, c'est un programme que j'ai recopié à la main en vérifiant que je ne me trompe pas. Hélas ça ne fonctionne pas...Les magazines ont souvent des erreurs dans leurs listings, dommage. Je vous tiendrai au courant de l'évolution. Merci pour les conseils.

Hors ligne

#5 Le 23/11/2022, à 19:59

Compte supprimé

Re : RESOLU: Petit prog en python3/eric6

...Il y a notamment Pascal Ortiz qui écrit des tutos sur python et tkinter :
http://pascal.ortiz.free.fr/
Celui sur tkinter est plutôt bien fait (pour les autres je ne les ai pas regardés)...

#6 Le 24/11/2022, à 11:03

jeremy318

Re : RESOLU: Petit prog en python3/eric6

Bonjour MPython Alaplancha, merci pour le lien avec Pascal Ortiz, je regarderai.
Pour le programme à problème, j'ai corrigé des noms de variables (raquettedroite était devenue raquette_right, par exemple) ainsi que des tirets de fin de ligne(sur le magazine), il n'en faut pas. Bref il ne me sort que "Warning: undefined name 'os' " dans la ligne:  os.system("aplay son_balle_contre_raquette.wav&"). Couic...
Puisque Python sait faire peux tu me donner la ligne correcte à taper stp? Merci

Hors ligne

#7 Le 24/11/2022, à 11:13

pingouinux

Re : RESOLU: Petit prog en python3/eric6

Bonjour,
Avant la ligne qui pose provoque le message d'erreur, il faut ajouter la ligne :

import os

Hors ligne

#8 Le 24/11/2022, à 13:00

jeremy318

Re : RESOLU: Petit prog en python3/eric6

Je l'ai mis en début de programme , aucune faute. J'essaierai le prog ce soir, merci. Bon app'

Hors ligne

#9 Le 24/11/2022, à 13:12

Compte supprimé

Re : RESOLU: Petit prog en python3/eric6

Bonjour,

jeremy a écrit :

Puisque Python sait faire peux tu me donner la ligne correcte à taper stp?

Il existe plusieurs bibliothèques qui permet de jouer un son. Pour ma part, j'utilise pygame.mixer qui particulièrement adapté à la création de jeu.
Ne faisant pas partie de la bibliothèque standard, il faut d'abord l'installer sur le système (ou environnement virtuel...):

python3 -m pip install pygame

exemple d'utilisation:

import pygame
pygame.mixer.init()
balle_contre_raquette = pygame.mixer.Sound("chemin_complet_du_fichier.wav")

puis à chaque fois que tu veux jouer le son:

balle_contre_raquette.play()

Dernière modification par Compte supprimé (Le 24/11/2022, à 13:13)

#10 Le 25/11/2022, à 18:51

jeremy318

Re : RESOLU: Petit prog en python3/eric6

Bonsoir, hier j'ai fait une bêtise de...débutant: un clear dans la fenêtre d'édition. C'est efficace, obligé de retaper tout à la main. Bref j'ai une erreur "syntax error: invalid syntax" sur la partie :
if (balle.xcor() >340) and (balle.xcor() <350) and (balle.ycor() <raquettegauche.ycor() +40 and (balle.ycor()>raquettedroite.ycor() -40:
balle.setx(-340)
balledx=balledx*-1
os ("aplay son_balle_contre_raquette.wav&")    # fin
et je sèche. Svp, merci de me secourir...
Je n'ai pas essayé pygame, ce sera pour la fin. A+

Hors ligne

#11 Le 25/11/2022, à 19:06

xubu1957

Re : RESOLU: Petit prog en python3/eric6

Bonjour,

Pour ajouter toi-même les balises code à ton précédent message #1 :

  • Cliquer sur  le lien « Modifier » en bas à droite du message

  • Sélectionner le texte

  • Cliquer sur le <> de l'éditeur de message

1642675956.jpg

comme indiqué dans le : Retour utilisable de commande

    #           Limites du terrain
            if balle.ycor()>290:
                balle.sety(290)
                balleydirection=balley-direction*-1
           
            if balle.ycor()<-290:
                balle.sety(-290)
                balleydirection=balley-direction*-1
                       
            if balle.xcor() > 390:
                balle.goto(0,0)
                balle_dx = balle_dx * -1
                joueur_a_score = joueur_a_score + 1
                pen.clear()
                pen.write(«Joueur A: {} Joueur B: {} «.format(joueur_a_score, joueur_b_score),align=»center»,font=(»Monaco»,24,»normal»))
                os.system(«son_balle_contre_mur.wav&»)
            if (balle.xcor()) < -390: # Left width raquette Border
                balle.goto(0,0)
                balle_dx = balle_dx * -1
                joueur_b_score = joueur_b_score +1
                pen.clear()
                pen.write(«Joueur A: {} Joueur B: {} «.format(joueur_a_score, joueur_b_score),align="center, font=('Monaco',24, "normal"))
                os.system(«son_balle_contre_mur.wav&")

Exceptionnellement, pour fournir une copie d'écran > [Tuto] Poster une image


Conseils pour les nouveaux demandeurs et pas qu'eux
Important : Pensez à passer vos sujets en [Résolu] lorsque ceux-ci le sont, au début du titre en cliquant sur Modifier sous le premier message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.                   Membre de Linux-Azur

Hors ligne

#12 Le 26/11/2022, à 07:19

Compte supprimé

Re : RESOLU: Petit prog en python3/eric6

jeremy318 a écrit :

Bonsoir, hier j'ai fait une bêtise de...débutant: un clear dans la fenêtre d'édition. C'est efficace, obligé de retaper tout à la main. Bref j'ai une erreur "syntax error: invalid syntax" sur la partie :
if (balle.xcor() >340) and (balle.xcor() <350) and (balle.ycor() <raquettegauche.ycor() +40 and (balle.ycor()>raquettedroite.ycor() -40:
balle.setx(-340)
balledx=balledx*-1
os ("aplay son_balle_contre_raquette.wav&")    # fin
et je sèche. Svp, merci de me secourir...
Je n'ai pas essayé pygame, ce sera pour la fin. A+

Bonjour,
Comme précisé par @xubu1957, présente tes codes dans les balises codes. En plus d'une meilleure visibilité, elles permettent surtout de garder l'indentation du code (l'indentation est utilisée par python pour structurer les blocs de code, une erreur et le code plante).

Généralement, le retour de l'exception rencontrée indique précisément où se situe le problème... donc elle est à communiquer dans son intégralité pour toute demande d'aide dans un forum. (là on peut déjà voir un problème avec les parenthèses dans ta condition, et c'est os.system(...) pas os(..))

Tu n'apprendras pas grand-chose avec ce code, comme déjà dit il est écrit par une personne qui ne maîtrise pas python.
De plus, si tu n'apprends pas les bases du langage, tu seras incapable de comprendre comme ça marche.

Sinon, avec la revue, tu disposes bien d'un support numérique avec les fichiers .wav concernés?  roll

#13 Le 26/11/2022, à 09:28

jeremy318

Re : RESOLU: Petit prog en python3/eric6

Bonjour, merci xubu1957 et MPython Alaplancha pour vos conseils. J'ai corrigé les erreurs et tout fonctionne (erreurs de frappe sans doute). Pour le son je choisirai un fichier adéquat. Je pense que la lecture de magazine peut être positive à condition d'avoir les bases et ce n'est pas encore mon cas. Mais je suis confiant, ça viendra... A+

Hors ligne

#14 Le 27/11/2022, à 16:28

jeremy318

Re : RESOLU: Petit prog en python3/eric6

Bonjour, je reviens sur le prog à pb: un coup zéro faute, un coup des fautes sans rien modifier...Bref, je reprendrai ça plus tard. Pour l'instant je vais apprendre les bases sur le site de Pascal Ortiz, ça me semble bien comme site. A+

Hors ligne