IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Les fonctions DEF


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2024
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Avril 2024
    Messages : 13
    Par défaut Les fonctions DEF
    Bonjour,

    On doit faire un devoir pour jeudi, sur les fonctions.
    Voici les instructions :

    # créez une fonction qui s'appelle :
    # joue_du_banjo
    # Si votre prenom commence par la lettre "R" ou "r", alors vous jouez du banjo
    # La fonction prend un prénom comme seul argument et retourne l'une des chaines suivantes :
    # prenom + "Joue du banjo"
    # prenom + "ne joue pas du banjo"

    Le prof nous a mis le début du code comme suit :

    ---------------------------------------------------------

    def joue_du_banjo(prenom):

    if prenom[0]=="r" or prenom[0]=="R":
    return prenom + "joue du banjo"
    else :
    return prenom + "ne joue pas du banjo"
    ---------------------------------------------------------------

    Par la suite, on doit terminer le codage en demandant à l'utilisateur d'entrer son prénom, la fonction fait le reste.

    J'ai placé ceci en fin de code, mais ça ne fonctionne pas :

    ---------------------------------------------------------------

    prenom=print("Ecrivez votre prénom: ")
    input()
    print("Dans ce groupe musical", joue_du_banjo(prenom))

    -----------------------------------------------------------------


    Pouvez-vous m'aider ?


    Nom : banjo.PNG
Affichages : 141
Taille : 50,2 Ko

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 507
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 507
    Par défaut
    L'erreur dit que prenom est de type None et que ce type est non "subscriptable" (on ne peut pas accéder à un de ses éléments), il reste à savoir pourquoi prenom serait de type None et non string, donc regarde la doc de print() et ce quelle retourne (vu que tu affectes à prenom le retour du print)
    Selon toi, à quoi sert la fonction input() ? (pareil, regarde sa doc)

    En regardant ces 2 points, tu devrais trouver ton erreur je pense.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 811
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 811
    Billets dans le blog
    1
    Par défaut
    Bonjour
    umfred a tout dit. Tout vient de ta façon dont tu associes la chaine "Eric" à la variable prenom, variable qui est ensuite passée à la fonction.
    Je rajouterais que input() peut afficher une chaine (donc inutile de mettre un print() pour ça) et que les règles du forum demandent que les codes soient placés directement dans les posts plutôt que dans une image inutilisable (perso je ne vais pas m'embêter à recopier ton code manuellement parce que tu as eu la flemme de le faire via un copier/coller qui aurait été pourtant mille fois plus facile que de mettre cette image).
    Et pour ta fonction, le prof est bien sympa mais il a fait ça au plus simple. Quand tu auras l'habitude, tu verras que tu peux faire ça en une ligne.
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def joue_du_banjo(prenom):
        return prenom + ("joue du banjo" if prenom[0]=="r" or prenom[0]=="R" else  "ne joue pas du banjo")
    ou mieux encore en utilisant les formatages de strings
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def joue_du_banjo(prenom):
        return "%s %s du banjo" % (prenom, "joue" if prenom[0] in "rR" else "ne joue pas")
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [Python 3.X] Utilisation de def pour les fonctions
    Par pycarpe dans le forum Général Python
    Réponses: 4
    Dernier message: 29/07/2021, 20h09
  2. doc sur les fonctions
    Par masterfab dans le forum C
    Réponses: 18
    Dernier message: 23/06/2005, 17h55
  3. Réponses: 11
    Dernier message: 22/12/2003, 21h06
  4. [Postgresql]Problème avec les fonctions ...
    Par fet dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/10/2003, 09h04
  5. Réponses: 7
    Dernier message: 24/05/2003, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo