Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Mes questions en Python.
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Mes questions en Python.

Posté le 14/02/2016 18:23

Bonjours, je voudrai savoir si il est possible de faire ça :
nb_poisson [blue]=[/blue] [red]10[/red]
    [blue]for[/blue] i [blue]in[/blue] nb_poisson [blue]:[/blue]
    poisson[blue]+[/blue]str[blue]([/blue]i[blue])[/blue] [blue]=[/blue] [red]25[/red]



Précédente 1, 2, 3 ··· 8, 9, 10, 11
Julese50 Hors ligne Gourou Points: 315 Défis: 16 Message

Citer : Posté le 03/12/2016 10:33 | #


En fait, la vraie erreur se trouve à ce niveau :
self.foret = foret_2.foret

Quand tu fais cette assignation, Python ne copie pas tout l'objet à un nouvel emplacement de la mémoire, il lie tout simplement le nom self.foret au contenu foret_2.foret.

C'est pour ça que quand tu modifie self.foret, tu modifie foret_2.foret.
Pour faire une deep copy d'une liste (c'est à dire copier toute la liste, récursivement, vers une nouvelle variable, donc exactement ce que tu veux), tu peux utiliser la fonction deepcopy du module copy (qui est un module standard Python).

Si ce n'était pas des listes imbriquées, tu aurais pu faire une shallow copy, c'est à dire copier superficiellement le contenu de la liste (on ne peut pas utiliser ce type de copie dans ce cas, parce que les listes dans la liste auraient été copiées uniquement par référence, et donc le problème n'aurait pas été résolu), de cette manière :
nouvelle_liste = liste[:]

(À noter que ça ne marche que pour les listes, puisqu'on fait un slice. Pour faire une shallow copy d'un objet autre qu'une liste, il y a la fonction copy du module copy)
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 03/12/2016 12:42 | #


Ok merci beaucoup !
Au soir de votre vie, le seigneur ne comptera pas le nombre de fois ou vous êtes tombés, il comptera le nombre de fois ou vous vous êtes relevés.

Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Zezombye Hors ligne Rédacteur Points: 1756 Défis: 13 Message

Citer : Posté le 11/12/2016 14:09 | #


Moi aussi j'ai quelques questions, pour mon mastermind en python

J'aurais besoin de :
- Ouvrir une fenêtre de taille x*y, non redimensionnable
- Afficher une image et la mettre en fond (le jeu)
- Afficher des sprites à des coordonnées spécifiques, les sprites doivent être au dessus de l'image de fond (les pions)
- Lorsque l'utilisateur clique sur un sprite (ou à des coordonnées spécifiques vu que les pions ils bougent pas) ça exécute une fonction

Le résultat ressemblerait à ça :

Lorsque l'utilisateur clique sur les pions à droite ça les met dans la ligne.

Du coup quelles sont les fonctions pour faire ça ? (je pense que la fenêtre et l'image/sprite je trouverai assez vite, mais faire une action quand l'utilisateur clique sur un pion ça risque d'être compliqué)
Divers jeux : Puissance 4 - Chariot Wars - Sokoban
Ecrivez vos programmes basic sur PC avec BIDE
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 11/12/2016 14:11 | #


Mais euh c'est un cas flagrant de RTFM.

Lis n'importe quel tuto sur Tkinter ou PyQt.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Drac0300 Hors ligne Membre Points: 839 Défis: 39 Message

Citer : Posté le 19/12/2016 15:07 | #


ou pygtk, ou python-efl, ou tout toolkit graphique digne de ce nom, qui te permettra généralement d’appeler une fonction de callback sur une action de l’utilisateur (comme un appui sur une touche)
Sinon, il y a pygame
Dans Z/1Z, 42==666
Coïncidence ? Je ne pense pas.
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 10/02/2017 12:10 | #


Bonjour
Je ne comprends pas cette erreur :
Traceback (most recent call last):
  File "C:\Users\f.coupey\Desktop\Julia_zoom.pyw", line 9, in <module>
    c = [tkinter.IntVar(), tkinter.IntVar()]
  File "C:\Users\f.coupey\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 499, in __init__
    Variable.__init__(self, master, value, name)
  File "C:\Users\f.coupey\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 314, in __init__
    self._root = master._root()
AttributeError: 'NoneType' object has no attribute '_root'

Voici le code :
import tkinter
import math

global centre, zoom, taille, max_itineration, c
centre = [0,0]
zoom = 2
taille =200
max_itineration = 50
c = [tkinter.IntVar(), tkinter.IntVar()]
print(c)
c[0].set(0)
c[1].set(0)
print(c)
print(c[0].get(), c[1].get())

def clic(event) :
    global centre, zoom, taille
    centre = [centre[0]-zoom+event.x*((centre[0]+zoom-(centre[0]-zoom))/taille), centre[1]-zoom+event.y*((centre[1]+zoom-(centre[1]-zoom))/taille)]

def zoom_avant() :
    global zoom, max_itineration
    max_itineration = max_itineration * 2
    zoom = zoom / 2
    image()
    
def zoom_arriere() :
    global zoom, max_itineration
    max_itineration = max_itineration / 2
    zoom = zoom * 2
    image()

def image() :
    global centre, zoom, taille, max_itineration, c    
    for y in range(taille) :
        for x in range(taille):
            a = centre[0]-zoom+x*((centre[0]+zoom-(centre[0]-zoom))/taille)
            b = centre[1]-zoom+y*((centre[1]+zoom-(centre[1]-zoom))/taille)
            i = 1
            while i < max_itineration and a**2+b**2 < 4 :
                a_ = a**2-b**2+c[0]
                b = 2*a*b+c[1]
                a = a_
                i+=1
            couleur = int(math.sqrt(i/max_itineration)*250)
            if i == max_itineration :
                couleur = 0
            canevas.create_line(x, y, x+1, y+1, fill=('#%02x%02x%02x' % (0, couleur, 0)))

fenetre = tkinter.Tk()
fenetre.title("Ensemble de Mandelbrot.tiff")
fenetre.geometry("212x313")
fenetre["bg"] = "blue"
canevas = tkinter.Canvas(fenetre, width=taille-2, height=taille-2, bg='white')
canevas.grid(row=0, column=0, columnspan=2, padx=5, pady=5)
canevas.bind('<Button-1>', clic)
canevas.focus_set()
tkinter.Button(fenetre, text="Zoom avant", fg="blue", width=10, height=1, command=zoom_avant).grid(row=1, column=0, padx=5, pady=5)
tkinter.Button(fenetre, text="Zoom arrière", fg="blue", width=10, height=1, command=zoom_arriere).grid(row=1, column=1, padx=5, pady=5)
tkinter.Button(fenetre, text="Valider", fg="blue", width=10, height=1, command=image).grid(row=3, column=0, columnspan=2, padx=5, pady=5)
tkinter.Spinbox(fenetre, textvariable=c[0], from_=-2, to=2, increment=0.01, width=10, height=1).grid(row=2, column=0, padx=5, pady=5)
tkinter.Spinbox(fenetre, textvariable=c[1], from_=-2, to=2, increment=0.01, width=10, height=1).grid(row=2, column=1, padx=5, pady=5)

image()
    
fenetre.mainloop()

Au soir de votre vie, le seigneur ne comptera pas le nombre de fois ou vous êtes tombés, il comptera le nombre de fois ou vous vous êtes relevés.

Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Cakeisalie5 En ligne Ancien administrateur Points: 1910 Défis: 11 Message

Citer : Posté le 10/02/2017 12:22 | #


Tu es sûr que tu ne rates pas une étape d'initialisation ? (je ne connais pas tkinter, mais si une variable interne est None...)

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !

Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 10/02/2017 13:05 | #


Non je crois pas.
J'ai essayer de différentes manière :
ca = tkinter.IntVar()
cb = tkinter.IntVar()
c = [ca, cb]

Mais j'ai toujours la même erreur.
Au soir de votre vie, le seigneur ne comptera pas le nombre de fois ou vous êtes tombés, il comptera le nombre de fois ou vous vous êtes relevés.

Labyrinthe : un jeu de réflexe unique, élu Jeu Du Mois !!!
Lephenixnoir Hors ligne Administrateur Points: 24232 Défis: 170 Message

Citer : Posté le 10/02/2017 13:40 | #


De mémoire il faut que tu passes un « parent » (appelé root par Tkinter) au constructeur de IntVar(). La doc sera sans doute plus précise que moi.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Précédente 1, 2, 3 ··· 8, 9, 10, 11

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 99 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd