Le blog de Fatiha

Une geek de plus !

Tutoriels java sur slideshare

 

Il y a différentes manières d’apprendre le langage java. Un collègue m’a conseillé les présentations powerpoint hébergées sur le site slideshare. Vous trouverez donc ci-dessous quelques unes des présentations que j’ai lues.

La première présentation est en anglais, elle est adaptée aux débutants car elle reprend aussi les principes de la programmation.

 

Cette deuxième présentation en français n’est pas destinée aux programmeurs java, elle concernerait plus les administrateurs système. Le but de cette présentation est de nous apprendre comment optimiser la gestion de la mémoire de la JVM. Vous y trouverez des notions comme le garbage collector, le throughput ou encore heap.

Dans cette troisième présentation dédiée au garbage collector, vous entendrez parler de minor GC, de full GC, de survivor space… Rassurez-vous, même si cette présentation est en anglais, elle vous sera très utile pour comprendre comment le garbage collector fonctionne, comment il gère la mémoire. On y trouve des conseils sur l’allocation mémoire, par exemple, il est préconisé de créer des « petits » objets avec des durées de vie courtes. Le mécanisme de fuite mémoire y est notamment détaillé. Dans cette présentation, vous trouverez aussi des conseils pour bien gérer la mémoire : ne pas forcer le lancement du garbage collector (System.gc()), utiliser le bloc finally dans la programmation java (gestion des fichiers, gestion bases de données), … Elle mentionne quelques outils de base pour le monitoring : jconsole, jstat, jmap, jhat

Je vous laisse, je retourne sur le site slideshare :)

Erreur java : « Exception in thread « main » java.lang.NoClassDefFoundError »

 

Exception in thread « main » java.lang.NoClassDefFoundError

Comment ai-je obtenu cette très belle erreur ? Cela s’est produit quand j’ai essayé de lancer un programme java avec son extension .class :

erreur de débutante

Pour corriger cette erreur, il suffit de relancer le programme en supprimant l’extension .class. C’est une erreur de débutante, je l’avoue. Ce que je peux dire pour ma défense c’est que j’ai l’habitude de travailler avec des langages interprétés qui n’ont pas besoin de compilation. Il y a quelques années j’avais déjà essayé de coder en java, puis, je m’étais rabattue sur le php.

Source : commentcamarche.net

POO en python, un exemple avec les fonctions search et compile

 

J’ai essayé de prendre en compte les remarques et conseils que j’ai eus via ce blog et via twitter. Un grand merci à : @Abd_fr, @Niyyou et @kiki67100.  Pour coder cette classe, j’ai utilisé l’IDE PyCharm, IDE que m’a conseillé @Abd_fr. Je peux dire qu’il y a un avant et après PyCharm.

J’ai essayé de partir de mon précédent article et de perfectionner un peu les choses. Comme je le dis souvent, ce n’est encore qu’un début. Passons à la pratique.

La classe ci-dessous contient deux méthodes :

  • une méthode qui affiche les arguments passés lors de l’instanciation de l’objet personne => print_args
  • une méthode qui recherche une ville précise dans l’adresse donnée lors de l’instanciation de l’objet personne
Vous remarquerez que j’ai importé le module re. C’est indispensable pour pouvoir utiliser les méthodes compile et search. J’ai déjà parlé de la méthode search dans un précédent article. 
import re
__author__ = 'FATIHA'
class MyIdentityClass (object):
    def __init__(self,_firstname,_lastname,_address):
        self._firstname=_firstname
        self._lastname=_lastname
        self._address=_address

    def print_args(self):
        print self._firstname
        print self._lastname
        print self._address

    def search_city (self,_city):
        pattern = re.compile(_city)
        if pattern.search(self._address):
            print "Yes"
        else:
            print "No"

personne=MyIdentityClass("michel","dupont","70 avenue Mozart, 75016 Paris")
personne.print_args()
personne.search_city("Paris")
personne.search_city("Londres")

Le résultat est le suivant :

michel
dupont
70 avenue Mozart, 75016 Paris
Yes
No

Programmation orientée objet en python : ma première classe

 

Cet article fait suite à la série d’articles que je rédige sur le langage python.

Je ne vais pas revenir ce qu’est la programmation orientée objet, vous pouvez trouver énormément de définitions et de cours sur le sujet sur le net. Arrêtons-nous sur ce qu’est une classe et allons droit au but, comment créer uune classe en python et comment lui associer des objets et des méthodes. « Une classe crée un nouveau type où les objets sont des instances de la classe ». Cette définition est issue du site swaroopch.com. Elle est claire et précise. Nous savons maintenant ce qu’est une classe et ce qu’est un objet. Le troisième terme à comprendre est le terme méthode : « Les objets peuvent aussi avoir des fonctionnalités en utilisant des fonctions qui appartiennent à une classe. » Cette définition de la méthode est encore issue du site swaroopch.com.

Passons tout de suite à un cas pratique issu du site voidspace.org.uk :

class maPremiereClasse(object):
    """Class docstring."""

    def __init__(self, arg1, arg2):
        """Method docstring."""
        self.arg1 = arg1
        self.arg2 = arg2

    def printargs(self):
        """Method docstring."""
        print self.arg1
        print self.arg2

# l'instanciation de l'objet appelle la methode init
instance=maPremiereClasse("mon argument 1","mon argument 2")

print type(instance)

#appelle la methode printargs
instance.printargs()

Ce qui donne :

Au niveau de cette exemple, deux méthodes sont définies : la méthode __init__ et la méthode printargs. La méthode __init__ est optionnelle, elle peut ne pas figurer dans une classe définie par un utilisateur. Mais quand elle est définie, elle doit avoir comme premier argument self. Qu’est-ce que self ? Quand est-ce qu’il est utilisé et comment l’utiliser ?

Ce qu’on doit savoir c’est que le paramètre self est toujours passé en paramètre des méthodes de l’objet. Même si on ne sait pas encore à quoi il sert, il faut l’utiliser. Nous voyons d’ailleurs dans l’exemple ci-dessus qu’il est passé en paramètre de printargs et de la méthode __init__. Sur swaroopch.com, self est expliqué ainsi : « cette variable particulière fait référence à l’objet lui-même, et par convention on lui donne le nom de self. « 

Pour vérifier que j’ai bien compris les bases de la programmation orientée objet en python, je vais jouer au quizz du site du zéro. Cool, j’ai obtenu 20/20. C’est un bon début, cela signifie que je suis sur la bonne voie :)

Sources :

 

Manipuler les chaînes de caractères en python : fonction strip

 

Cet article fait suite à la série d’articles que je rédige sur le langage python.

Nous allons nous intéresser à la fonction strip, cette fonction supprime les espaces en début et en fin de chaîne. Si vous lui passez un paramètre, elle supprimera un caractère en particulier en début et en fin de chaîne. Passons tout de suite à la pratique :

texte1 = "      ceci est un exemple     "
texte2 = "******ceci est un exemple*****"
texte3 = "0000003456676767000000"

print texte1.strip()
print texte2.strip("*")
print texte3.strip("0")

Source :

- Fonction strip sur tutorialspoint.com

Utilisation simple de la fonction search en python

 

Pour pouvoir utiliser cette fonction, il faut tout d’abord importer le module re :

import re

C’est indispensable pour pouvoir se servir des expressions régulières ou regexp.

Nous allons voir tout de suite un exemple. Prenons une chaîne de caractères : « je programme en python aujourd’hui » et recherchons le terme python.

import re

maPhrase="je programme en python aujourd'hui"

if re.search('python',maPhrase) :
      print "OK"

Cela affiche OK car le terme python est contenu dans la variable maPhrase.

Deuxième exemple similaire :

import re

maPhrase="je programme en php aujourd'hui"

if re.search('python',maPhrase) :
      print "OK"
else :
      print "KO"

Cela affiche KO car le terme python n’est pas contenu dans la variable maPhrase.

Je débute en python, je verrai les cas compliqués un peu plus tard.

Source :

Explications sur le module re

Histoire des langages de programmation en infographie

 

Sur le site de Vincent Abry, j’ai trouvé une infographie fort intéressante sur l’histoire des langages de programmation, de Fortran au Java, en passant par le pascal, le php, le python ou encore perl.

Pour la petite histoire, voici les premiers langages de programmation que j’ai appris à l’école :

  • Pascal
  • Assembleur
  • C++
  • PHP

Ensuite une fois dans le monde professionnel, je me suis mise au perl, à l’html, au javascript, au shell, … Ces derniers temps j’apprends tranquillement le langage python.

Pour revenir à l’infographie, il ne faut pas prendre en compte la classement des langages de programmation les plus utilisés. Ce classement évolue en effet très vite et d’après @cafedelinfo qui a relayé l’information publiée sur le monde de l’informatique, ci-dessous le nouveau classement :

Ma série d’articles sur le langage de programmation python

 

Je vous ai listé ma série d’articles sur le langage de programmation python. 

Ce n’est encore qu’un début, il me reste beaucoup à faire pour réellement dire que je maîtrise le python. Il faut que je progresse en gestion de fichiers, en communication avec des bases de données, en programmation de GUI (graphical user interface), et j’en passe. Je reste motivée et suis persuadée que je vais progresser vite. Tiens, ça me fait penser qu’il faut que j’ajoute ça dans mon schemer : « progresser en langage de programmation python ».

Pour les programmeurs, savez-vous programmer en python ?

View Results

Loading ... Loading ...

Utilisation de fonctions prédéfinies en python

 

Nous allons apprendre aujourd’hui comment utiliser les fonctions prédéfinies en python. C’est le 4e article de la série consacrée à l’apprentissage du langage python (lire le 1er article, le 2e article et le 3e article). Nous allons prendre deux exemples : les fonctions mathématiques et les fonctions de date.

Le 1er exemple consiste à demander à l’utilisateur de saisir un nombre au clavier puis le programme lui calcule la racine carrée de ce nombre. Nous utilisons ici le module math.

from math import *

print "Tapez un nombre :",
nombre = int(raw_input())
print 'La racine carree de ', nombre, 'est : ', sqrt(nombre)

En indiquant from math import * nous lui demandons d’importer toutes les fonctions du module math. Nous pouvions aussi lui demander uniquement la fonction sqrt en tapant : from math import sqrt

Lançons le programme et voyons ce que ça donne :

 

Maintenant que nous avons compris le principe, passons maintenant aux fonctions de date en important le module datetime.

from datetime import *

# je cree ma variable contenant la date du jour
dateDuJour=datetime.now()

print 'Date du jour avec la fonction today :', date.today()
print 'Date du jour avec la fonction now :', datetime.now()
print 'Formatage de la date du jour avec la fonction strftime qui prend en parametre le format de la date :', dateDuJour.strftime("%d %B %Y %I:%M%p")

Dans un prochain article, nous verrons comment créer nos propres fonctions.

Sources :