Les femmes préfèrent les hommes qui les prennent sans les comprendre, aux hommes qui les comprennent sans les prendre.
Marcel Prévost
#vershtml.py version 1.1.1
import keyword, html
"""py.txt en py.htm
imperatifs :
1/ les strings n'utilisent pas les simples quotes
"""
#constantes css
intro="<em ><a style=\"margin-left:35px; color:grey;\" href=\"http://site2wouf.fr/python_vers_html.php\">"
intro+="Code Python traduit en HTML: </a></em>"
intro+="<code><pre style=\"margin-top:2px; margin-left:20px; font-size:120%;border-radius: 20px; max-width:600px; max-height:600px; padding-left :15px; overflow-x:auto; border:3px ridge grey; Line-Height: 1.5;\">"
fin="</pre></code>"
motsclefs=keyword.kwlist
natives=["abs" ,"bytes" ,"chr" ,"eval" ,"exec" ,"input" ,"int" ,"len" ,"max" ,\
"min" ,"open" ,"print" ,"str" ]
nativestyle="<span style=\"color:purple\">"
motsclefstyle="<span style=\"color:orange\">"
diesestyle="<span style=\"color:red\">"
fichier=open("py.txt" ,"r" )
texte=fichier.read()
fichier.close()
avant=["/n" ," " ,"(" ,"=" ,"." ]
apres=["/n" ," " ,")" ,"." ,"(" ,":" ]
print("Cette application va transformer le code python du fichier py.txt en html" )
print("Et enregistrer le résultat dans py.htm..." )
print("Les deux fichiers étant dans le répertoire de l'application !" )
nom=input("(Facultatif ) Entrez le nom du programme :" )
if nom!="" :
sources=input("(Facultatif ) Entrez un lien hypertext:" )
#pretraitement à cause du caractère d echappement en html
texte=texte.replace("\\\"" ,"|@@|" )
""" c est ici qu on modifie texte"""
liste=texte.split("\"\"\"" )
"""les elements paires de la liste sont des commentaires de type triples cotes"""
i=1
texte=""
for morceau in liste:
if i%2==1:
#On cherche les strings
morceau2=morceau.split("\"" )
morceau2propre=""
j=1
for partie in morceau2:
if j%2==1:
"""On continue le traitement en cherchant les # hors chaine (commentaires)
qu'on remplace temporairement par |&|
"""
partiepropre=partie.replace("#" ,"|&|" )
for mot in motsclefs:
for av in avant:
for ap in apres:
partiepropre=partiepropre.replace(av+mot+ap,av+motsclefstyle+mot+"</span>" +ap)
for mot in natives:
for av in avant:
for ap in apres:
partiepropre=partiepropre.replace(av+mot+ap,av+nativestyle+mot+"</span>" +ap)
morceau2propre+=partiepropre
else:
morceau2propre=morceau2propre+"<span style=\"color:#04B404\">\"" \
+html.escape(partie,quote=True)+"\" </span>"
j+=1
texte+=morceau2propre
else:
texte=texte+"<span style=\"color:#04B404\">\"\"\"" +html.escape(morceau,quote=True)+"\"\"\" </span>"
i+=1
""" reste à verifier ligne par ligne les mots clefs et les commentaires"""
lignes=texte.split("\n" )
texte=""
for ligne in lignes:
lignefinale=""
demi=ligne.split("|&|" ,1)
lignefinale=demi[0]
for mot in motsclefs:
for x in apres:
if demi[0].find(mot+x)==0:
lignefinale=motsclefstyle+mot+x+"</span>" +demi[0][len(mot)+len(x):]
for mot in natives:
for x in apres:
if demi[0].find(mot+x)==0:
lignefinale=nativestyle+mot+x+"</span>" +demi[0][len(mot)+len(x):]
texte+=lignefinale
if len(demi)>1:
texte=texte+"<span style=\"color:red\">|&|" +demi[1]+"</span>\n"
else:
texte=texte+"\n"
texte=intro+texte+fin
#postraitement
texte=texte.replace("|@@|" ,"\\\"" )
texte=texte.replace("|&|" ,"#" )
if nom!="" and sources!="" :
texte=texte+"<p style=\"text-align:right; width:600px; margin-top:2px; \"><em><a style=\"color:grey;\" href=\"" +sources+"\">" +nom+"</a></em></p>"
elif nom!="" and sources=="" :
texte=texte+"<p style=\"text-align:right;width:600px;margin-top:2px; color:grey;\"><em>" +nom+"</em></p>"
fichier=open("py.htm" ,"w" )
fichier.write(texte)
fichier.close()#vershtml.py version 1.1.1
Les problématiques étaient les suivantes :
Ma solution consiste en une application Python sommaire qui, exécutée dans un répertoire, va lire le code Python dans un fichier texte (py.txt) et écrire dans un autre fichier texte (py.htm) ce même code mais traduis en html.
L'utilisateur dispose d'un fichier exemple.py et aimerait récupérer son contenu pour le publier en html.
L'utilisateur dispose de Python installé sur son ordinateur.
Pour l'instant cette application ne gère pas les 'simples quotes' pour les chaines de caractères.
La dernière version est la 1.1.1 :
Ajout du caractère ":" dans la liste apres pour corriger un bug de coloration syntaxique du code else:
Utilisez le champ suivant !
Au cycle 4, les élèves s'initient à la programmation, en développant dans une démarche de projet quelques programmes simples, sans viser une connaissance experte et exhaustive d'un langage ou d'un logiciel particulier. En créant un programme, ils développent des méthodes de programmation, revisitent les notions de variables et de fonctions sous une forme différente, et s'entraînent au raisonnement.
Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. - Notions d'algorithme et de programme. - Notion de variable informatique. - Déclenchement d'une action par un événement, séquences d'instructions, boucles, instructions conditionnelles.
Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l'aide d'un logiciel de programmation pour consolider les notions de longueur et d'angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII...). Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis... Calculs simples de calendrier. Calculs de répertoire (recherche, recherche inversée...). Calculs de fréquences d'apparition de chaque lettre dans un texte pour distinguer sa langue d'origine : français, anglais, italien, etc.
En 5e, les élèves s'initient à la programmation événementielle. Progressivement, ils développent de nouvelles compétences, en programmant des actions en parallèle, en utilisant la notion de variable informatique, en découvrant les boucles et les instructions conditionnelles qui complètent les structures de contrôle liées aux événements.
Lorsqu'il s'agit de représenter des objets en trois dimensions de manière précise, la perspective cavalière est une technique incontournable en géométrie. Inkscape, le logiciel de dessin vectoriel libre et open-source, se révèle être un allié exceptionnel pour créer des illustrations en perspective cavalière de manière simple et efficace.
La perspective cavalière est une technique de représentation graphique qui permet de dessiner des objets tridimensionnels sur une surface bidimensionnelle de manière réaliste. Elle est largement utilisée en ingénierie, en architecture et dans d'autres domaines où une représentation précise des objets en trois dimensions est essentielle.
Dans la perspective cavalière, les objets conservent leurs angles droits et parallèles dans les deux premières dimensions, tandis que la troisième dimension est représentée de manière inclinée. Cette approche donne une impression de profondeur et de réalisme sans sacrifier la simplicité de la représentation.
Inkscape, en tant que logiciel de dessin vectoriel, offre une gamme complète d'outils pour créer des illustrations en perspective cavalière. Voici quelques étapes simples pour commencer :
Ouvrez Inkscape et créez une nouvelle toile pour votre dessin. Allez dans "Fichier" > "Nouveau" et définissez les dimensions de votre toile en fonction de vos besoins.
Inkscape dispose d'un outil de perspective qui facilite la création d'objets en trois dimensions. Sélectionnez l'outil de perspective dans la barre latérale, puis cliquez et faites glisser pour définir la direction de la perspective.
Utilisez les outils de dessin disponibles pour créer vos objets en perspective cavalière. Inkscape permet de dessiner des lignes, des formes, et d'ajouter du texte, ce qui est idéal pour représenter des concepts géométriques complexes.
Inkscape offre également des options de personnalisation avancées. Vous pouvez ajuster les couleurs, ajouter des dégradés, et expérimenter avec les ombres pour donner à votre illustration un aspect professionnel.
Inkscape se révèle être un outil puissant pour représenter des objets en perspective cavalière en géométrie. Son interface conviviale et ses fonctionnalités avancées en font un choix idéal pour les professionnels et les amateurs cherchant à donner vie à leurs concepts géométriques.
Que vous soyez un étudiant en mathématiques cherchant à illustrer des concepts complexes ou un professionnel de l'architecture travaillant sur des plans détaillés, Inkscape peut vous accompagner dans la création d'illustrations en perspective cavalière avec facilité et précision.
N'hésitez pas à explorer les nombreuses fonctionnalités d'Inkscape pour découvrir tout son potentiel dans le domaine de la représentation graphique en géométrie.
lien vers l'article sur wouf blog