> Tous les forums > Forum Linux
 Presentation Python et Zope
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
svg
  Posté le 24/10/2005 @ 12:47 
Aller en bas de la page 
Petit astucien
J'encourage ceux qui ont le temps et l'envie à s'interesser au langage python et à la plate forme Zope, 100% open source. Créer par Guido Van Rossum, Python est LE langage universel du moment. Zope est un serveur d'application web écrit en Python et qui utilise Python. Python et Zope ne réinventent pas l'informatique, c'est dans l'aisance et la rapidité qu'ils font la difference pour: créer un site dynamique, une interface graphique pour envoyer des fax, un gestionnaire de base de données etc...etc... Je travaille sous Debian Sarge, je vous livre la méthode pour installer MySQL avec zope2.7, sous Mandrake celà devrait être plus simple, , je n'ai pas réussi l'install de MySQL sous Windows XP, par contre, Zope s'installe avec un simple EXE et il contient la base de donnée par défaut de Python : Gadfly. apt-get install zope2.7 apt-get install mysql-client mysql-server mysql-common python-mysqldb apt-get install zope-mysqlda # ce qui a pour effet d'installer zope 2.6, laisser faire... copier : cp -rf /usr/lib/zope/lib/python/Products/ZMySQLDA /us/zope2.7/lib/python/Products C'est tout ; Pour "tuer" zope 2.6: mv /etc/rc2.d/S20zope /etc/rc2.d/K20zope Pour démarrer zope2.7: /var/lib/zope2.7/instance/bin/runzope Pour faire plus court, ont peur copier .../runzope dans /usr/sbin, par exemple, ou écrire: alias runzope=/var/lib/zope2.7/instance/bin/runzope dans /etc/profile, ainsi un simple "runzope" lance l'application. Sous Windows, un simple double-clic sur l'icone. Je vous livre si dessous un petit aide-mémoire python, très succint mais bien utile pour commencer. Je mets prochainement sous licence GPL et en open-source, 3 petits exercices que j'ai réalisé et mis en production: un compteur Internet pour Cybercafé, avec code coté serveur et coté clients. Une petite gestion hotellière et un "compositeur" de requetes SQL sur lequel je travaille. Liens Python: http://forum.hardware.fr/hardwarefr/Programmation/sujet-44982.htm Memo Python: -------------------------------------------- CHAINES: -------------------------------------------- - Types de donnees: string, integer et float (str, int, float) a = "3" # string (chaine) a = 3 # integer (entier) - Operateurs mathematiques: Note, a = b n'est pas un operateur math. mais une assignation de variable. Note2, les operateurs sont utilisables pour des tri alphabetiques. a == 10 # egalite mathematique a != b # different de a > b # plus grand que a < b # plus petit que a >= b # plus grand ou egal a <= b # plus petit ou egal - Concatenation: chaine + autre_chaine - Repetition: chaine * <entier> - Index: chaine[n°index] - Recherche d'un caractère: ch = "Chaine a traiter" caractere = "e" longueur_chaine = len(ch) i = 0 flag = 0 while i < longueur_chaine if ch[i] == caractere flag = 1 i = i + 1 print " Le caractere ", caractere if t == 1: print "est présent" else: print "est absent" - Inversion d'une chaine: ch = "zorglub" lc = len(ch) i = lc - 1 nch = "" while i >= 0: nch = nch + ch[i] i = i - 1 print nch - Methodes des chaines ch.upper() # tranforme en majuscule tous les car. ch.lower() # transforme en minuscule tous les car. ch.capitalize() # transforme en majuscule le premier car. de la chaine. ch.replace('car1','car2') # remplace le car. ou sous-chaine "car1" par "car2" a = 'a b c' a.replace('b', 'z') a 'a z c' ------------------------------------------ LISTES: ------------------------------------------ - Transformer une liste en chaine: a = ['a','b','c'] ch = "" for i in a: ch = ch + i print ch abc - Transformer une liste en chaine avec join: # join: ceci est la bonne syntaxe! a = ['a,'b','c'] " ".join(a) # avec un separateur whitespace 'a b c' ";".join(a) # avec un separateur car 'a;b;c' - Transformer une chaine en liste avec split: a = 'a b c' a.split() # par defaut, \w est le separateur ['a','b','c'] - Explosion d'une chaine en liste, en fonction d'un separateur: a = 'a;b;c' a.split(';') # Note: le separateur est supprime ['a','b','c'] # autre syntaxe: import re re.split(';',a) ['a','b','c'] - Remplacement d'une tranche d'elements: a = ['a','b','c','d','e','f'] a[2:5] = [] a ['a','b','f'] - Combinaison de 2 listes en une: t1 = [31,28,31,30,31,30,31,31,30,31,30,31] t2 = ['janvier','fevrier,'mars','avril','mai','juin','juillet' ,'aout','septembre','octobre','novembre','decembre'] t3 = [] i = 0 while i < len(t1): t3.append(t2[i]) t3.append(t1[i]) i = i + 1 print t3 - indicer tous les elements d'une liste: a = ['a','b','c'] for i in range(len(a)): print i, a[i] 0 a 1 b 2 c - Methodes des listes: range(x) # renvoit une liste croissante d'entiers de 0 a x-1 range(10) [ 0,1,2,3,4,5,6,7,8,9 ] range(x,y) # renvoit une liste croissante d'entier de x a y-1 range(5,8) [ 5,6,7 ] append(x) # insere x en fin de liste [equiv. a: li.insert(len(a), x) ] ex: a.append('toto') ['a','b','c','toto'] index(x) # Retourne le N° d'ndex de x, dans la liste del(a[i]) # supprime l'element d'index i, contenu dans la liste a (pas d'affichage). pop(i) # Affiche et supprime, l'element d'index i, ex: a = ['a','b','c'] a.pop(1) 'b' a ['a','c'] remove(x) # Supprime le premier element de valeur x, dans la liste, ex: a = ['a','b','c'] a.remove('c') a ['a','b'] count(x) # renvoi le nombre de fois que x apparait dans la liste. sort() # Trie les elements dans la liste, (tri alphanumerique), ex: a = ['c','b','a'] a.sort() a ['a','b','c'] a = ['12','3','0'] a.sort() a ['0','12','3'] # Note: le tri se base sur le PREMIER car. de l'element. reverse() # Inverse l'ordre des elements dans la liste. --------------------------------------------------- TUPLES --------------------------------------------------- liste = ['a','b','c'] tuple = ('a','b','c') --------------------------------------------------- DICTIONNAIRE --------------------------------------------------- Les elements sont indices par une clef dico = {'clef1' : 'element1', 'clef2': 'element2'} print dico.keys() # renvoi les clefs dans une liste ['clef1','clef2'] print dico.values() # renvoi les elements dans une liste dico.items # renvoi une liste equivalente de tuples has_key() udentifie par true or false la presence d'une clef: if a.has_key('clef1'): print "ok" - Copy d'un dictionnaire: b = a.copy() ---------------------------------------------------- REGEXP ---------------------------------------------------- -Definitions: \w # N'importe quel car. alphanumerique, e.g [a-zA-Z0-9_] \W # N'importe quel car. NON-alphanum. , e.g [^a-zA-Z0-9_] \d # N'importe quel car. decimal, e.g [0-9] \D # N'importe quel car. NON-decimal, eg [^0-9] \s # N'importe quel whitespace, e.g [ \t\n\r\f\v] \S # N'importe quel NON-whitespace car. e.g [^ \t\n\r\f\v] re.compile('.+') # Tout ('.{0,}.') # Tout ('\S+') # Toutes les chaines, SAUF les espaces. ('ch1 | ch2') # ch1 ET ch2 - lookahead assertions: TODO - Examples: import re a = open('/var/log/ulog/syslogemu.log','r').read() a = str(a) i = "192.168.0.2" regexp = "(.*\s\d+:\d+).+(%s)" % i p = re.compile(regexp) p.findall(a) [('Sep 5 15:06', '192.168.0.2'), ...] ### A tester: b = p.findall(a) b = " ,".join(b) ------------------------------------------------------ FICHIERS ------------------------------------------------------ f = open('fichier', 'r') # r = lecture, w = ecriture f.read() # renvoit TOUS le fichier f.read(x) # renvoit x premieres ligne du fichier f.readline() # renvoit la PREMIERE ligne du fichier f.readlines() # renvoit tout le fichier dans une liste, chaque lignecorrespond à un element et finit par "\n". f.write('chaine') # ecrit <chaine> dans le fichier et ECRASE le contenu. f.close() # fermeture du fichier et validation des ecritures.
Publicité
luteola
 Posté le 24/10/2005 à 12:58 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
salut Bookmarké ;-) Bravo et merci ! a+
Scratch53
 Posté le 24/10/2005 à 23:12 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
salut voila un lien tres interressant: http://python.developpez.com/ je vous conseille : "apprendre a programmer avec python" de gerard swinnen http://python.developpez.com/cours/TutoSwinnen/ format pdf enregistrable c'est tres clair et bien expliquer avec enormement d'exercices autre lien avec tuto telechargeable: http://python.developpez.com/cours/TutoVanRossum/ http://ludovic.pinelli.free.fr/Python/Python_ami.html http://www.linux-center.org/articles/9812/python.html et biensur cela va de soit: http://www.python.org/ voilou,faite vous plaisir. a consommer sans moderations . bye
svg
 Posté le 24/10/2005 à 23:38 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
Salut Luteola, merci Scratch pour tes liens, le tuto de Swinenn est vraiment la porte d'entrée du langage Python. Même plus: une réference pour débuter LA programmation en général. Je l'ai lu et relu, comme si je devais passer le code de la route.. Petit deux: le tuto de Van Rossum. Petit trois: lire du code! Un truc, faites des recherches googles sur un snipet (un petit bout) de code. Niveau plus avancé: http://gnosis.cx/TPiP/
Shaika-Dzari
 Posté le 25/10/2005 à 00:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Python est vraiment très bien! Je me cherchais un langage pour débuté et je dois dire que la doc de Gerard swinnen à la main, c'est un vrai plaisir. Merci pour ce résumé et ces infos! @+
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Superkaramba et script python sous Gnome
présentation ubuntu 11.04
Superkaramba - python 2.5 - KDE 4
Programme python
Présentation de Debian etch
Questions sur le python
python abi
a l'aide : presentation avec Linux !!!!!
Présentation de Linux
Plus de sujets relatifs à Presentation Python et Zope
 > Tous les forums > Forum Linux