MakeMake The Dwarf Planet is a feed agregator.

Problème exécution fichier IDLE

by Libtak from AFPy discuss

Bonsoir tout le monde !

Débutant sur python je viens de commencer à prendre en main un éditeur de code, en l’occurrence IDLE (avant ça je codais via le terminal lol) et je rencontre un problème depuis quelque temps quand j’enregistre (en .py) mon code et que j’ouvre le fichier pour qu’il s’exécute celui-ci s’ouvre sur une fenêtre puis disparaît instantanément. Si quelqu’un pourrait m’aider merci d’avance :slight_smile:

4 messages - 2 participant(e)s

Lire le sujet en entier

Lire la suite…

Sur Lyon − Meetup le 18 décembre

by grewn0uille from AFPy discuss

Hello tout le monde,

Meetup de fin d’année le jeudi 18 décembre, dans les locaux de Lowit (métro Part-Dieu) !

Comme l’an dernier, on vous propose un format Lightning Talks :christmas_tree:

Si vous souhaitez parler de quelque chose, d’une bibliothèque, d’un outil, d’un projet… N’hésitez pas à me contacter pour que je rajoute sur la liste des sujets :slight_smile:

(dans la limite des slots disponibles)

Lightning Talks de Noël 🎄

2025-12-18 19:00 (Europe/Paris) → 2025-12-18 22:00 (Europe/Paris)

1 message - 1 participant(e)

Lire le sujet en entier

Lire la suite…

Skull King : priorités entre les cartes sous forme de graphes

by ascendances from ascendances

Skull King est un jeu de plis sur un thème de pirates, existant depuis plusieurs années en diverses versions.

Présentation rapide du jeu

Plusieurs cartes et effets ont été ajoutés au fil des éditions. Par exemple, une version éditée par Schmidt contient 66 cartes (cartes de couleurs allant de 1 à 13, fuites, pirates, sirènes, Scary Mary et Skull King). La version Grandpa Beck/Blackrock games fournit en plus les baleines, le Kraken, deux cartes butin, une valeur supplémentaire par couleur (le 14) et un effet différent par pirate.

Pour une présentation complète, les règles sont disponibles en ligne, sur de nombreux sites : par exemple en texte ou en vidéo. Pas la peine de s’étendre plus, allez les consulter pour avoir une idée des règles du jeu.

La boîte éditée par Schmidt :

photo d'une boite de Skull King et de cartes du jeu

La boîte éditée par Blackrock :

photo d'une boite de Skull King et de cartes du jeu

En flèches et en couleurs

Puisque vous avez maintenant une idée de l’ordre de priorité entre les cartes (n’est-ce pas ?), vous allez comprendre aisément les graphes orientés suivants.

Au moins une carte baleine a été jouée :

    Ce premier cas est le plus courant lors d’une partie.

    Aucune carte baleine n’a été jouée :

    Graphe de priorité entre les cartes si au moins une carte baleine a été jouée

    Évidemment, ce cas ne peut arriver que dans une édition paquet de cartes contenant les sirènes.

    Code Source des graphes

    Les deux graphes ont été réalisés avec le vénérable graphviz (version 2.42.4 mais beaucoup de versions plus anciennes devraient produire le même résultat).

    Graphe sans carte baleine :

    digraph Jeu {
        compound=true
        fontname="Helvetica,Arial,sans-serif"
        node [fontname="Helvetica,Arial,sans-serif",style=filled]
        edge [fontname="Helvetica,Arial,sans-serif"]
    	graph [style="filled"]
    
        subgraph cluster_pirates {
            color=firebrick1
    		node [color=white]
            "premier pirate" -> "autres pirates"
            label = "Pirates"
        }
    
        subgraph cluster_sirenes {
            color=deepskyblue
    		node [color=white]
            "première sirène" -> "autres sirènes"
            label = "Sirènes"
        }
    
        subgraph cluster_cartes_noires {
            color=black
            fontcolor=white
    		node [color=white]
            label = "Cartes noires"
            c14n -> cn -> c1n [color=white]
        }
    
        subgraph cluster_cartes_jaunes {
            color=yellow
    		node [color=white]
            label = "Cartes jaunes"
            c14j -> cj -> c1j
        }
    
        subgraph cluster_cartes_violettes {
    		node [color=white]
            color=violetred
            label = "Cartes violettes"
            c14vi -> cvi -> c1vi
        }
    
        subgraph cluster_cartes_vertes {
    		node [color=white]
            color=chartreuse3
            label = "Cartes vertes"
            c14ve -> cve -> c1ve
        }
    
        subgraph cluster_fuites {
    		node [color=white]
            color=lightgrey
            label = "Fuites & butins"
            "première fuite ou butin" -> "autres fuites ou butins"
        }
    
        c1n[label="1"]
        c1j[label="1"]
        c1ve[label="1"]
        c1vi[label="1"]
        cn[label="..."]
        cj[label="..."]
        cve[label="..."]
        cvi[label="..."]
    	c14n[label="14"]
        c14j[label="14"]
        c14ve[label="14"]
        c14vi[label="14"]
        "autres pirates" -> "première sirène" [ltail=cluster_pirates,lhead=cluster_sirenes,minlen=2]
        "autres sirènes" -> c14n [ltail=cluster_sirenes,lhead=cluster_cartes_noires,minlen=2]
        "autres sirènes" -> "Skull King" [ltail=cluster_sirenes]
        "Skull King" -> "premier pirate" [lhead=cluster_pirates]
        c1n -> c14j [ltail=cluster_cartes_noires,lhead=cluster_cartes_jaunes,minlen=2]
        c1n -> c14vi [ltail=cluster_cartes_noires,lhead=cluster_cartes_violettes,minlen=2]
        c1n -> c14ve [ltail=cluster_cartes_noires,lhead=cluster_cartes_vertes,minlen=2]
        c1j -> "première fuite ou butin" [ltail=cluster_cartes_jaunes,lhead=cluster_fuites,minlen=2]
        c1vi -> "première fuite ou butin" [ltail=cluster_cartes_violettes,lhead=cluster_fuites,minlen=2]
        c1ve -> "première fuite ou butin" [ltail=cluster_cartes_vertes,lhead=cluster_fuites,minlen=2]
    }
    
    

    Graphe avec carte baleine :

    digraph Jeu {
        compound=true
        fontname="Helvetica,Arial,sans-serif"
        node [fontname="Helvetica,Arial,sans-serif",style=filled]
        edge [fontname="Helvetica,Arial,sans-serif"]
    	graph [style="filled"]
    
        subgraph cluster_valeurs {
            color=orange
    		node [color=white]
            label = "Cartes avec valeur"
            "premier 13" -> "..."
            "premier 13" -> "autres 13"
            "..." -> "premier 1"
            "premier 1" -> "autres 1"
        }
    
    
        subgraph cluster_autres_cartes {
    		node [shape=rectangle]
            color=beige
            rank=same
            label = "Autres cartes (sauf Kraken)"
            Pirates [color=firebrick1]
            "Skull King"[color=white,shape=ellipse]
            Sirènes [color=deepskyblue]
            Fuites [color=lightgrey]
            Baleines [color=navy]
            Butins [color=gold]
        }
    
        "autres 1" -> Sirènes [ltail=cluster_valeurs,lhead=cluster_autres_cartes,minlen=2]
    }
    

    (La coloration syntaxique est configurée sur Swift pour avoir un rendu à peu près correct car la coloration de code Graphviz n’est pas proposée.)

    La génération des images se fait par une commande du type :

    dot -T png sans_baleine.dot -o sans_baleine.png
    

    Bonnes parties et/ou bons graphes !

    Lire la suite…

    Utilisez Python pour vos scripts !

    by Camille Roux from Human coders

    Cet article explore pourquoi Python est un excellent choix pour l’écriture de scripts, en abordant les défis rencontrés avec d’autres outils qui peuvent se comporter différemment selon les machines ou ne pas être toujours installés. Une perspective pratique sur l’utilisation de Python comme solution de scripting fiable et cohérente.


    Commentaires
    L'article Utilisez Python pour vos scripts ! a été posté dans la catégorie Python de Human Coders News

    Lire la suite…

    Un gestionnaire de contexte libéré, (délivré, …)

    by mdk from AFPy discuss

    @entwanne, @debnet et moi jouons avec les gestionnaires de contextes ces temps-ci, ça m’a permis de faire ça par exemple : mdk/forking - La forge de l'AFPy

    Le jeu du jour et d’aller plus loin dans la libération des gestionnaires de contextes, et je commence à toucher quelque chose, probablement encore un peu fragile, à peine testé, mais ça commence à marcher :

    import ast
    import inspect
    import sys
    import textwrap
    
    
    class Stop(Exception):
        """Internal exception to block the execution of the context body."""
    
    
    class With:
        def tracer_cb(self, frame, event, arg):
            if frame is self.frame and event == "opcode":
                raise Stop
    
        def __enter__(self):
            current_frame = inspect.currentframe()
            self.frame = current_frame.f_back
            self.frame.f_trace = self.tracer_cb
            self.frame.f_trace_opcodes = True
            sys.settrace(self.tracer_cb)
    
        def execute(self, body):
            """Do whatever with the body of the with statement."""
            raise NotImplementedError
    
        def _locate_with_body(self, tree, lineno):
            """Locate the with statement, in tree, at lineno."""
            for node in ast.walk(tree):
                try:
                    node_lineno = node.lineno
                except AttributeError:
                    continue
                if node_lineno == lineno:
                    return node.body
    
        def __exit__(self, exc_type, exc, tb):
            frame = tb.tb_frame
            src = textwrap.dedent(inspect.getsource(tb.tb_frame))
            tree = ast.parse(src)
            module = ast.Module(body=self._locate_with_body(tree, tb.tb_frame.f_lineno))
            compiled = compile(module, filename="<with>", mode="exec")
            Function = type(Repeat.__enter__)
            self.execute(Function(compiled, frame.f_globals, name="<with>"))
            return True
    
    
    class Repeat(With):
        def __init__(self, times):
            self.times = times
    
        def execute(self, body):
            for _ in range(self.times):
                body()
    
    
    
    with Repeat(4):
        print(42)
    

    5 messages - 4 participant(e)s

    Lire le sujet en entier

    Lire la suite…

    Importer 2 fois un module en Python

    by DorianTurba from AFPy discuss

    Petite découverte grace à un poste de Vincent Poulailleau sur linkedin : il est possible d’importer 2 fois un module Python, sans toucher à importlib:

    Il suffit de faire le code suivant pour le voir:

    # fichier spam.py
    print("module importé: ", __name__)
    import spam
    

    Si vous lancez cette commande avec python spam.py, il y aura 2 prints, un avec “__main__” et un autre avec “spam”.

    Voila, j’ai découvert cette mécanique probablement inutile à la plupart, mais curieuse, récemment, donc je voulais partager :slight_smile:

    1 message - 1 participant(e)

    Lire le sujet en entier

    Lire la suite…

    Serveur discord Python FR

    by DorianTurba from AFPy discuss

    Bonjour,

    Début février 2024, j’ai créé un serveur Discord pour échanger sur Python avec la communauté francophone. Resté plutôt privé un certain temps, je l’ai réanimé il y a ~7 mois.

    Nous sommes désormais 373 membres, et le serveur tourne autour de 3 thématiques :

    • Compétences : les sujets tournes autour de sujets comme Python, les sciences, l’architecture et le devsecops
    • Pro : on y parle recherche de job, cv et certifications
    • Compétitions : Algo et techniques, on se confronte en versus ou en collaboration sur des sites comme Genepy, Projet Euler, Advent of Code, etc.

    On y respecte une traduction du Code de conduite du serveur Python officiel ( Python ) .

    Les différences entre le discord de l’AFPY et celui dont je parle :

    • Plus de salons, dédié à des thématiques précises, et quand un salon n’a pas suffisamment d’intérêt/activité, il est gelé et archivé (il est possible de restaurer un salon si ça redevient pertinent à l’avenir, l’historique y est conservé),
    • un système de notification assez poussé,
    • des salons vocaux personnels et temporaires afin que les échanges puissent être multiples sans se marcher sur les pieds,
    • des notifications RSS d’articles, vidéo et forums (comme ArjanCode, l’ANSSI, r/developpeur, r/python et r/pythonfr, le discuss afpy, et StackOverflow Python),
    • un système de signalement des comportement inadaptés au discord permettant un dialogue avec la modération privé, un suivi des tickets et la génération d’un transcript accessible par l’auteur du signalement et la modération,
    • Des événements réguliers auxquels les membres peuvent s’inscrire pour y participer comme des compétitions de code, des échanges autours de l’architecture logicielle, etc.

    On communique sur les événements de la commu python internationale et FR, comme la PyconFR et l’Advent of Code, histoire de motiver les membres.

    L’objectif du serveur est de rapprocher les membres de la communauté, permettant aux curieux de discuter avec d’autres devs sans risquer la toxicité de reddit, l’exposition publique de linkedin ou la rigueur de StackOverflow, le tout avec un maximum de spontanéité.

    N’hésitez pas à nous rejoindre : SWEPY

    3 messages - 3 participant(e)s

    Lire le sujet en entier

    Lire la suite…