Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/11/2006, à 19:23

Dark Arno

python=>question de débutant total ^^

Bonjour à tous,

Arrivé sous ubuntu depuis maintenant presque 2 mois, j'ai commencé récemment à m'interesser à la programmation.
Donc après plusieurs recherches, j'ai vu que le langage que vous conseillez souvent pour débuter est le python notamment avec les cours de Swinnen.
J'ai donc débuter ces cours qui sont vraiment très bien, par contre il y a un truc que je comprend pas...sur les premiers exos, tout ce passe nikel par contre à partir de l'exo 5.6 (cf plus bas) et ce sur tous les exos où je dois accéder aux caractère d'une chaine ou d'une liste, j'ai droit à des erreurs type:

File "<stdin>", line 6

alors je pensais que c'était mes codes qui allaient pas, or en les comparant avec le corrigé, ceux-ci étaint justes...en théorie.
j'ai donc copié le corrigé et coller pour voir le résultat et...le corrigé lui même marche pas et ça me retourne le même type d'erreur -_-'
Donc je voulais savoir s'il y avait un truc à installer ou à paramétrer et que j'aurai loupé, car là c'est déprimant de voir que sur le papier les codes qu'on fait sont justes et que quand on les executent ça marche pas ^^
Alors je continu les cours puisque théoriquement mes scripts sont justes, mais bon j'aimerai bien voir enfin un script qui marche lol

voici l'exo 5.6 avec le corrigé (j'ai mis le corrigé car il y a les commentaires...contrairement à mon script xD)

Enoncé:

5.6. Écrivez un script qui détermine si une chaîne contient ou non le caractère « e ».

Corrigé avec les erreurs:

>>> # Chaîne fournie au départ :
... ch = "Monty python flying circus"
>>> # Caractère à rechercher :
... cr = "e"
>>> # Recherche proprement dite :
... lc = len(ch)    # nombre de caractères à tester
>>> i=0             # indice du caractère en cours d'examen
>>> t=0             # "drapeau" à lever si le caractère recherché est présent
>>> while i < lc:
...     if ch[i] == cr:
...          t=1
...     i=i+1
... # Affichage :
... print "Le caractère", cr,
  File "<stdin>", line 6
    print "Le caractère", cr,
        ^
SyntaxError: invalid syntax
>>> if t == 1:
...     print "est présent",
... else:
...     print "est introuvable",
... print "dans la chaîne", ch
  File "<stdin>", line 5
    print "dans la chaîne", ch
        ^
SyntaxError: invalid syntax

Désolé pour cette question de gros débutant et merci d'avance pour votre aide smile

Hors ligne

#2 Le 09/11/2006, à 20:00

drmalcolm

Re : python=>question de débutant total ^^

Une chose que tu dois savoir en python, c'est que l'indentation a son importance (attention des espaces pas des tabulations), Déjà saches que idle est un ide complet, tu fais  File new window afin d'obtenir une nouvelle fenêtre où tu taperas le listing de ton code, afin de bien voir ton indentation et aussi que quand tu nous fais parvenir un copier coller ça soit plus lisible.
Je crois qu'il y n'y a pas besoin de faire toute la chaine pour voir si un caractère est présent wink

Hors ligne

#3 Le 09/11/2006, à 20:32

Dark Arno

Re : python=>question de débutant total ^^

désolé pour la lisibilité...
sinon merci pour ton aide je viens d'essayer idle comme tu me l'a conseillé et va savoir pourquoi les script fonctionnent avec sans que je retouche rien -_-
enfin merci encore et promis la prochaine fois je ferai gaffe pour la lisibilité wink

Hors ligne

#4 Le 09/11/2006, à 20:36

drmalcolm

Re : python=>question de débutant total ^^

Dark Arno a écrit :

désolé pour la lisibilité...
sinon merci pour ton aide je viens d'essayer idle comme tu me l'a conseillé et va savoir pourquoi les script fonctionnent avec sans que je retouche rien -_-
enfin merci encore et promis la prochaine fois je ferai gaffe pour la lisibilité wink

Moi je sais pourquoi tu as juste foirer une indentation (genre une tabulation au lieu d'un espace ou oublier un espace) bref en python la lisibilité est une condition sine quo none pour faire fonctionner ton programme à la différence de bon nombre langage.

Hors ligne

#5 Le 10/11/2006, à 11:59

aleph

Re : python=>question de débutant total ^^

A tous les débutants en Python. Commencez par lire le tutotial écrit par Guido van Rossum lui-même.
Fondamental pour comprendre l'esprit Python, voir ci-dessous.


5.6. Écrivez un script qui détermine si une chaîne contient ou non le caractère « e ».

>>> print 'e' in 'salut les aminches'
True
>>> print 'e' in 'abracadabra'
False

#6 Le 10/11/2006, à 14:50

drmalcolm

Re : python=>question de débutant total ^^

aleph a écrit :

A tous les débutants en Python. Commencez par lire le tutotial écrit par Guido van Rossum lui-même.
Fondamental pour comprendre l'esprit Python, voir ci-dessous.


5.6. Écrivez un script qui détermine si une chaîne contient ou non le caractère « e ».

>>> print 'e' in 'salut les aminches'
True
>>> print 'e' in 'abracadabra'
False

D'accord c'est du 100% python, mais vaut parfois mieux savoir d'abord utiliser "la méthode traditionnelle" surtout quand on apprend à programmer.

Hors ligne

#7 Le 10/11/2006, à 18:03

aleph

Re : python=>question de débutant total ^^

> drmalcolm
D'accord c'est du 100% python, mais vaut parfois mieux savoir d'abord utiliser "la méthode traditionnelle" surtout quand on apprend à programmer.

Je ne le pense pas, si tu utilises Python autant apprendre Python dans les règles de l'art. Il en va ainsi de tous les langages. Une compréhension correcte de Python ne peut qu'aider une compréhension d'un autre langage.

> Je crois qu'il y n'y a pas besoin de faire toute la chaine pour voir si un caractère est présent.

Toujours en Python en voulant utiliser une boucle

def eInString(s):
    for c in s:
        print c
        if c == 'e':
            return True
    return False

eInString('he, salut les aminches')
h
e
True

Cette méthode est redondante avec la méthode __iter__ sous jacente du type string.

Il sera toujours temps d'utiliser et d'apprendre une boucle while que cela sera nécéssaire.

#8 Le 01/09/2015, à 15:03

granny

Re : python=>question de débutant total ^^

bonjour à tous , quelqu'un pourrait il m'indiquer le lien pour trouver les corrigés des exercices de swinnen? ceux par exemple auxquels Dark Arno fait allusion, merci à tous

Hors ligne