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, 4, 5, 6, 7, 8, 9, 10, 11 Suivante
Lephenixnoir En ligne Administrateur Points: 24236 Défis: 170 Message

Citer : Posté le 20/02/2016 16:31 | #


Euh... RTFM. La c'est du tkinter, c'est pas non plus la complexité même. Cherche un peu l'information.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 20/02/2016 16:32 | #


Et je plussoie Lephe.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 21/02/2016 11:36 | #


[blue]widget[/blue].place(x=[blue]20[/blue], y=[blue]50[/blue])

En bleu, c'est ce qu'il faut que tu changes pour adapter à tes besoins.

Est-ce-qu'il y a une autre solution parce que ça ne marche pas.
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 !!!
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 21/02/2016 11:50 | #


J'en sais rien, je pratique très peu Tkinter, je te conseille d'aller chercher sur des forums plus spécialisés
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 21/02/2016 19:13 | #


Hello, Je trouve que mon code ci-dessous commence à être un peu bordélique alors si vous avez des conseils je suis tout ouïe .
from tkinter import *
import os
import random
import sys


def achat_nouriture (nb_conserve) :
    global nouriture
    global argent
    if nb_conserve*10 <= argent :
        for c in range(nb_conserve) :
            nouriture += 20
            argent -= 10

def achat_aquarium (nb_aquariums, aquariums) :
    global argent
    if nb_aquariums*30 <= argent :
        for a in range(nb_aquariums) :
            argent -= 30
            aquarium.pop_max += 20

def efface_ecran () :
    if sys.platform.startswith("win") :
        os.system("cls")
    else :
        os.system("clear")


class Poisson :


    def __init__ (self):
        self.age = 0
        self.sexe = random.randint(1,2)
        self.capacite_reproduction = 0
        self.besoin_nourriture = 1
        self.vie = 1

    def temps (self):
        self.age += 1
        if self.age > 6 or self.besoin_nourriture == 1:
            global nb_poisson_m
            nb_poisson_m += 0
            self.vie = 0
        self.capacite_reproduction = 1
        self.besoin_nourriture = 1

    def reproduction (self):
        self.capacite_reproduction = 0

    def repas (self) :
        self.besoin_nourriture = 0



class Aquarium :


    def __init__ (self ):
        self.pop = []
        self.pop_max = 20
        poisson = Poisson()
        poisson.sexe = 1
        self.nouveau_poisson(poisson)
        poisson = Poisson()
        poisson.sexe = 2
        self.nouveau_poisson(poisson)

    def reproduction (self ):
        print("1")
        nb_p_m_adulte = 0
        nb_p_f_adulte = 0
        for poisson in self.pop :
            if poisson.age > 0 and poisson.sexe == 1:
                nb_p_m_adulte += 1
            if poisson.age > 0 and poisson.sexe == 2:
                nb_p_f_adulte += 1
        if nb_p_m_adulte > nb_p_f_adulte :
            nb_couple = nb_p_f_adulte
        else :
            nb_couple = nb_p_m_adulte
        for i in range(nb_couple) :
            nb_enfant = random.randint(5,10)
            for i in range(nb_enfant) :
                poisson = Poisson()
                self.nouveau_poisson(poisson)

    def vente (self, nb_poissons ) :
        poisson_mature = 0
        for poisson in self.pop :
            if poisson.age > 0 :
                poisson_mature += 1
        if poisson_mature < nb_poissons :
            nb_poissons = poisson_mature
        global argent
        for p in range(nb_poissons) :
            argent += 1.5
            del self.pop[1]

    def repas (self) :
        global nouriture
        for poisson in self.pop :
            if nouriture > 0 :
                nouriture -= 1
                poisson.repas()
            else :
                global nb_poisson_m
                nb_poisson_m += 1

    def nouveau_poisson (self , poisson):
        if len(self.pop) < self.pop_max :
            self.pop.append(poisson)
        else :
            global nb_poisson_m
            nb_poisson_m += 1

    def temps (self ) :
        for poisson in self.pop :
            poisson.temps()
            if poisson.vie == 0 :
                self.pop = [poisson for poisson in self.pop if poisson.vie]



argent = 200
nouriture = 20
nb_conseil = 0
aquarium = Aquarium()
nb_poisson_m = 0

def validation () :
    global texte_aquarium
    global texte_conserve
    global texte_poisson
    global texte_conseil
    global texte
    global argent
    global nb_conseil
    global nb_poisson_m
    poissons = len(aquarium.pop)
    try :
        nb_aquariums = int(texte_aquarium.get())
    except ValueError :
        nb_aquariums = 0
    try :
        nb_conserves = int(texte_conserve.get())
    except ValueError :
        nb_conserves = 0
    try :
        nb_poissons = int(texte_poisson.get())
    except ValueError :
        nb_poissons = 0
    try :
        nb_conseils = int(texte_poisson.get())
    except ValueError :
        nb_conseils = 0
    if nb_conseils*20 < argent :
        nb_conseil += nb_conseils
        argent -= 20*nb_conseils
    if nb_aquariums > 0 :
        achat_aquarium (nb_aquariums, aquarium)
    if nb_conserves > 0 :
        achat_nouriture (nb_conserves)
    if nb_poissons > 0 :
        aquarium.vente(nb_poissons)
    if argent < 0  or aquarium.pop == 0 :
        print ("Perdu")
        os.system("pause")
    efface_ecran()
    nb_poisson_m = 0
    aquarium.repas()
    aquarium.temps()
    aquarium.reproduction()
    texte_aquarium.set("Combiens d'aquariums voulez-vous acheter")
    texte_conserve.set("Combiens de conserve voulez-vous acheter")
    texte_poisson.set("Combiens de poissons voulez-vous vendre")
    texte_conseil.set("Combiens de conseils voulez-vous acheter")
    texte.set("{} poissons sont morts le mois dernier.\n \nVous possédez :\n  -{} $\n  -{} poissons\n  -{} aquariums\n  -{} rations de nouritures\n  -{} conseils".format(nb_poisson_m, argent, poissons, int(aquarium.pop_max / 20), nouriture, nb_conseil))
    
    

fenetre = Tk()
fenetre.title("Elevage de gupies")
fenetre.geometry("300x350+500+250")
fenetre["bg"] = "blue"

texte = StringVar()
poissons = len(aquarium.pop)
texte.set("{} poissons sont morts le mois dernier.\n \nVous possédez :\n  -{} $\n  -{} poissons\n  -{} aquariums\n  -{} rations de nouritures\n  -{} conseils".format(nb_poisson_m, argent, poissons, int(aquarium.pop_max / 20), nouriture, nb_conseil))
message_donnees = Label(fenetre, textvariable=texte, justify="left")
message_donnees.place(x=0, y=0)
message_donnees.pack()


texte_aquarium = StringVar()
texte_aquarium.set("Combiens d'aquariums voulez-vous acheter")
question_aquarium = Entry(fenetre, textvariable=texte_aquarium, width=40)
question_aquarium.focus_set()
question_aquarium.pack(padx = 5, pady = 5)

texte_conserve = StringVar()
texte_conserve.set("Combiens de conserve voulez-vous acheter")
question_conserve = Entry(fenetre, textvariable=texte_conserve, width=40)
question_conserve.focus_set()
question_conserve.pack(padx = 5, pady = 5)
    
texte_poisson = StringVar()
texte_poisson.set("Combiens de poissons voulez-vous vendre")
question_poisson = Entry(fenetre, textvariable=texte_poisson, width=40)
question_poisson.focus_set()
question_poisson.pack(padx = 5, pady = 5)

texte_conseil = StringVar()
texte_conseil.set("Combiens de conseils voulez-vous acheter")
question_conseil = Entry(fenetre, textvariable=texte_conseil, width=40)
question_conseil.focus_set()
question_conseil.pack(padx = 5, pady = 5)

boutton_valider = Button(fenetre, text="Valider", fg="blue", command = validation)
boutton_valider.pack(side="left")
    
boutton_quitter = Button(fenetre, text="Quitter", fg="red", command=fenetre.quit)
boutton_quitter.pack(side="right")
    
fenetre.mainloop()


Ajouté le 22/02/2016 à 19:43 :
Est-ce-que je peux optimiser ceci :
verification_deplacement(robot.position[0], robot.position[1]-1)
verification_deplacement(robot.position[0], robot.position[1]+1)
verification_deplacement(robot.position[0]-1, robot.position[1])
verification_deplacement(robot.position[0]+1, robot.position[1])


Ajouté le 22/02/2016 à 20:40 :
De même :
elif lab[pos_ligne][pos_col] == "1" or lab[pos_ligne][pos_col] == "2" or lab[pos_ligne][pos_col] == "3" :

En sachant que lab est une liste constitué de chaîne de caractère.
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 En ligne Administrateur Points: 24236 Défis: 170 Message

Citer : Posté le 22/02/2016 20:59 | #


Le premier est difficile à optimiser. Cette méthode est probablement la plus lisible.

Le second peut s'écrire :
elif lab[pos_ligne][pos_col] in ["1", "2", "3"]:

Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 22/02/2016 21:04 | #


Ok merci

Ajouté le 23/02/2016 à 11:04 :
Quel est l’équivalent du getkey de la calculatrice en python.
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 En ligne Administrateur Points: 24236 Défis: 170 Message

Citer : Posté le 23/02/2016 11:08 | #


Gab.c a écrit :
Quel est l’équivalent du getkey de la calculatrice en python.

Il n'y en a pas. Il faut soit utiliser des input() de terminal, soit utiliser les propriétés événementielles de ta bibliothèque graphique. En général, tu devras paramétrer un gestionnaire pour les événements clavier pour un widget donné et récupérer la touche pressée dans les données de l'événement. Mais c'est pas toujours facile d'obtenir le caractère représenté et la touche précise en même temps.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 23/02/2016 11:10 | #


soit utiliser les propriétés événementielles de ta bibliothèque graphique. En général, tu devras paramétrer un gestionnaire pour les événements clavier pour un widget donné et récupérer la touche pressée dans les données de l'événement

Et où est-ce-que j'apprends à faire ça.
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 En ligne Administrateur Points: 24236 Défis: 170 Message

Citer : Posté le 23/02/2016 11:11 | #


Ben tu lis des tutos sur ta bibliothèque graphique... ou la doc.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 23/02/2016 11:12 | #


Donc si je suis dans ma console Python de base je suis obligé d'utiliser Input.
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 !!!
Dark storm Hors ligne Labélisateur Points: 11634 Défis: 176 Message

Citer : Posté le 23/02/2016 11:14 | #


Oui.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 23/02/2016 11:19 | #


Dommage
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 En ligne Administrateur Points: 24236 Défis: 170 Message

Citer : Posté le 23/02/2016 11:28 | #


Il existe des versions de getch() mais c'est pas cross-compatible.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 23/02/2016 11:37 | #


C'est à dire
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 En ligne Administrateur Points: 24236 Défis: 170 Message

Citer : Posté le 23/02/2016 11:42 | #


Cherche un peu. Tu peux pas poser des questions sans creuser ce qu'on te donne, parce que d'une part tu n'apprends rien et d'autre part on va finir par te répondre STFW parce qu'on a pas envie de tout chercher à ta place.

getch() est une fonction C héritée de MS-DOS qui récupère une pression de touche dans un terminal sans écrire le caractère récupéré.
Chercher python getch sur DuckDuckGo me donne déjà le lien vers la doc de la fonction pour l'API VC++, et la même recherche sur Google me donne une question StackOverflow pour Linux.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 23/02/2016 16:18 | #


Je ne comprends pas :
def enregistrement (self) :
        global robot
        choix_enregistrement = input("Voulez-vous enregistrer la partie?")
        if choix_enregistrement.upper() == "O" :
            data = str("{} {} {} {} {}".format(robot.position[0], robot.position[1], self.niveau[5], robot.vie, robot.argent))
            with open("enregistrement.txt", "w") as fichier :
                mon_depickler = pickle.Pickler(fichier)
                mon_depickler.dump(data)

Et j'ai :
TypeError: write() argument must be str, not bytes

Pourtant, data est bien un string
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 En ligne Administrateur Points: 24236 Défis: 170 Message

Citer : Posté le 23/02/2016 16:22 | #


Pas besoin de caster le résultat de format() en str, normalement ça doit fonctionner sans
Tu te casses un peu la tête pour le fichier non ?
with open(...) as fp:
    fp.write(data)

C'est tout !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 23/02/2016 16:47 | #


Ahh oui c'est plus simple et en plus ça marche
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 !!!
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 23/02/2016 19:53 | # | Fichier joint


J'ai ça : fichier joint
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 !!!
Gab.c Hors ligne Membre Points: 449 Défis: 0 Message

Citer : Posté le 23/02/2016 19:54 | # | Fichier joint


Mais je voudrais avoir ça : fichier joint

Ajouté le 23/02/2016 à 19:56 :
Est-ce-qu'il y a une solution.
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 !!!
Précédente 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 Suivante

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 76 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