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
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
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
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 :
La boîte éditée par Blackrock :
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 :
É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).
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.
Un avis sur la certification Python de CodinGame ?
D’après le site, on peut retenter la certification tous les mois si on a un score qui ne nous satisfait pas.
Découvrez les notes de version de Django 6.0 : prise en charge de Python 3.12–3.14, CSP intégré, tâches en arrière-plan et autres changements importants.
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)
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é.