2017-09-05 2 views
0

Je crée un jeu de base de tictactoe dans tkinter, en Python 3.5.3 mais j'ai rencontré une erreur disant que .pack() était une syntaxe invalide. Code:Tkinter Button widget avec .pack() comme syntaxe invalide

from tkinter import * 
root = Tk() 
turn = X 
1 = Button(root, command=Pressed) 
1.pack() 
def Pressed(): 
    pass 
root.geometry('900x900') 
root.mainloop() 

S'il vous plaît quelqu'un pourrait-il me donner une réponse.

+1

Voici la grammaire des identifiants valides: https://stackoverflow.com/a/10120327/7051394 –

+0

Pourquoi les noms de variables ne peuvent-ils pas commencer par des nombres? https://stackoverflow.com/questions/342152/why-cant-variable-names-start-with-numbers – Zety

Répondre

0

Vous attribuez un nom de variable non valide à votre bouton. Essayez réécrire

1 = Button(root, command=Pressed) 
1.pack() 

à quelque chose comme:

button_1 = Button(root, command=Pressed) 
button_1.pack() 

Note sur les noms de variables:

  • doit commencer par une lettre (a - z, A - B) ou de soulignement (_)

  • Les autres caractères peuvent être des lettres, des chiffres ou _

  • Sensible à la casse

  • Peut être une longueur (raisonnable)

  • Il y a quelques mots réservés que vous ne pouvez pas utiliser comme nom de variable parce que Python les utilise pour d'autres choses.

+0

Il résout le problème du pack mais maintenant il dit que je n'ai pas défini Pressed() – Guydangerous99

+0

Oui, parce que vous affectez ' Pressed' avant qu'il ne soit déclaré, vous devriez donc mettre le bloc 'def Pressed()' avant le bouton button_1 = (... 'et ensuite cela devrait marcher – Szabolcs

+0

Cela a fonctionné pour moi. – Guydangerous99

0

En Python, vous ne pouvez pas nommer une variable avec juste un nombre, Python ne le reconnaîtra pas en tant que variable.

Donc dans votre cas, vous pouvez renommer 1 avec n'importe quoi comme buttonOne.

Pour plus d'informations sur la façon de nommer vos variables, vous pouvez lire les directives officielles pep8 ici: PEP8 Style Guide for Python