Forum Programmation.python exercice en python3

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
-12
20
mai
2019

Bonjour à toutes et à tous, j'aimerai qu'on puisse m'aider sur un exercice en python, notamment les exercices 4 et 5 du fichier que j'ai déposé.
Merci infiniment de votre aide, en vous souhaitant une agréable journée.

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwj_grTSoKriAhUJ5uAKHcc5BCwQFjAAegQIBBAC&url=https%3A%2F%2Fmoodlesupd.script.univ-paris-diderot.fr%2Fmod%2Fresource%2Fview.php%3Fid%3D159976&usg=AOvVaw0C7DVc9wpUSFTG5OSIbnha

  • # Quelques liens pour t'aider

    Posté par  . Évalué à 3.

    Les personnes ne font pas les programmes à ta place

    Je t'invite donc à relire ton cours et à regarder les liens suivants :
    https://docs.python.org/3/
    https://www.tutorialspoint.com/python/python_strings.htm

    • [^] # Re: Quelques liens pour t'aider

      Posté par  . Évalué à 2. Dernière modification le 21 mai 2019 à 16:30.

      Bonjour, pour la question 3 de l'exercice 4, je n'arrive pas. Je vous montre ce que j'ai fait:

      def battage(s1,s2):
          max=0
          min=0
          if len(s1)<len(s2):
              max=s2
              min=s1
          else:
              max=s1
              min=s2
          b=len(s1)+len(s2)
          s=[0]*b
          for i in range(0,b,1):
              if i%2==0 and i<(len(min)-1)*2:
                  s[i]=s1[i//2]
              elif i<(len(min)-1)*2:
                  s[i]=s2[i//2]
              if i>(len(min)-1)*2:
                  for j in range(0,b-(len(min)-1)*2,1):
                      s[j+(len(min)-1)*2+1]=s2[6+j]
          print(s)
      print(battage("licence","informatique"))

      j'ai également fait ce programme:

      def battage(s1,s2):
          b=len(s1)+len(s2)
          s=[0]*b
          for i in range(0,b,1):
              if i<len(s1):
                  s[i]=s1[i]
                  s[i+1]=s2[i]
              elif i>=len(s1):
                  c=i
                  for j in range(0,b-c,1):
      
          print(s)
      print(battage("licence","informatique"))

      mais je n'arrive toujours pas.
      j'ai passé pas mal de temps et j'aimerai avoir de l'aide si possible.
      Bonne journée à vous.

      • [^] # Re: Quelques liens pour t'aider

        Posté par  . Évalué à 2.

        Salut,

        commençons par le début. Quand je lance ce programme, j’ai une erreur.

        def battage (s1,s2):
            max=0
            min=0
            if len(s1)(len(min)-1)*2:
                for j in range(0,b-(len(min)-1)*2,1):
                    s[j+(len(min)-1)*2+1]=s2[6+j]
            print(s)

        Mon interpréteur python n’aime pas la ligne :

            if len(s1)(len(min)-1)*2:

        Que cherches-tu as tester ?

        Peux-tu m’expliquer l’erreur suivante ?

        TypeError: object of type 'int' has no len()

      • [^] # Re: Quelques liens pour t'aider

        Posté par  (site web personnel) . Évalué à 3.

        Pour insérer du code dans tes messages il faut mettre une ligne blanche, trois "backtick" (attention, pas des guillemets simples) suivi de python , puis les lignes de code, puis trois backtick pour fermer (cf doc en bas de la page de rédaction). C'est particulièrement important en Python à cause de l'indentation significative.

        Exemple:

        def battage(s1,s2):
            max=0
            min=0
            if len(s1)(len(min)-1)*2: 
                for j in range(0,b-(len(min)-1)*2,1):
                    s[j+(len(min)-1)*2+1]=s2[6+j]
                    print(s)
        print(battage("licence","informatique"))

        Dans ton expression if, il y a un problème de syntaxe (opérateur manquant?), et de plus la fonction len() ne s'applique pas à des nombres entiers (il faut lui fournir une séquence en paramètre).

        def battage(s1,s2):
            b=len(s1)+len(s2)
            s=[0]*b
            for i in range(0,b,1):
                if i=len(s1):
                    c=i
                for j in range(0,b-c,1):
                    print(s)
        print(battage("licence","informatique"))

        Dans ton if, le test d'égalité c'est == en Python, pas =.

        (pub)

        Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

        • [^] # Re: Quelques liens pour t'aider

          Posté par  (Mastodon) . Évalué à 2.

          Pour insérer du code dans tes messages il faut mettre une ligne blanche, trois "backtick" (attention, pas des guillemets simples) suivi de python

          Corrigé, merci

          En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: Quelques liens pour t'aider

        Posté par  . Évalué à 2. Dernière modification le 21 mai 2019 à 17:18.

        Avec le reformatage du code, je comprends mieux.

        Le premier me semble un peu complexe pour le besoin. Je partirai donc du second. En faisant deux étapes :

        • Copie de 0 à len_min
        • Copie de len_min a len_max du reste.
  • # 65 euros de l'heure, tout heure commencée est due.

    Posté par  . Évalué à 4.

    Ca c'est si tu veux que je te le fasse, pour dans plus d'1 emaine.

    si tu veux pour un délai plus court, je double le tarif.

    Si c'est ppour demain, c'est x4.

  • # Pour être constructif…

    Posté par  (site web personnel) . Évalué à 10.

    Bienvenue sur LinuxFR.

    Les posts qui demandent directement la solution à un exo scolaire engendrent des réactions comme tu as pu le voir… on n'est pas là pour faire ton boulot à ta place.

    Par contre, indiques ce que tu as déjà fait sur ces exos, ce que tu tentes et là où tu coinces, alors tu auras probablement une aide qui te guide vers la solution et/ou t'indique là où tu fais fausse route.

    Python 3 - Apprendre à programmer dans l'écosystème Python → https://www.dunod.com/EAN/9782100809141

    • [^] # Re: Pour être constructif…

      Posté par  (site web personnel) . Évalué à 1.

      Attention, à ne pas décourager trop vite ce type de message.

      La lecture des commentaires qui en résulte et souvent très intéressante :D

      • [^] # Re: Pour être constructif…

        Posté par  (site web personnel) . Évalué à 1.

        Je pense qu'au contraire il faut les décourager. Pas les messages qui demandent de l'aide, mais les messages disant "coucou voici un exercice je comprend rien donnez moi la réponse merci".

        Surtout quand ça vient de quelqu'un qui s'inscrit ici juste pour ça, on aimerait voir que la personne a essayé, ou qu'elle exprime clairement ce qu'elle ne comprend pas. Je trouve que les réponses ont été correctes dans l'ensemble, on lui a expliqué comment rédiger son message et comment demander de l'aide.

        Bref il ou elle aura appris ça, mais ça n'empêchera pas quelqu'un de revenir demain et faire pareil!

        Un LUG en Lorraine : https://enunclic-cappel.fr

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.