Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercices du cours Python / postez ici !

    6 novembre 2019 à 20:13:08

    Bonsoir, j'ai un dm à rendre sous peu, et j'ai malheureusement loupé des cours. 
    J'ai essayé de rattraper en vain, car je ne comprends pas comment faire une fonction (text) donc l'alphabet, et utiliser le code césar, c'est à dire décaler les lettres.
    Pour la seconde étape je ne peux que la faire si, la fonction text est crée. J'ai besoin de votre aide !
    De plus, chaque fonction doit avoir un "docstring" et un "assert" ce que je ne comprends pas.


    -
    Edité par DavidG26 6 novembre 2019 à 20:15:24

    • Partager sur Facebook
    • Partager sur Twitter
      8 novembre 2019 à 4:01:43

      Adresse = df['Adresse'].values.tolist()
      Adresse
      NvAdresse=[]
      for i in range(227):
          Var=Adresse[i]
          NvAdresse.append(Var.split("-"))
      NvAdresse

      Salut! etant sur un projet, j'ai transformé mon dataframe en liste pour pouvoir mieux l'apprehender(manipuler, recodage, rectifier les orthographes...) (Voir ligne1 du code). Je voudrais divisé chaque ligne de ma liste initiale(adresse) selon que le separateur soit un (-) puis puis inserer chaque ligne divisé dans ma nouvelle liste (NvAdresse). Mais j'ai une erreur probablement à la 6éme ligne du code.

      Voici l'erreur affiché sur mon interpreteur: AttributeError: 'float' object has no attribute 'split'

      • Partager sur Facebook
      • Partager sur Twitter
        8 novembre 2019 à 11:09:23

        Bonjour, 

        Tu es sûr que la colonne adresse ne contient que des chaînes de caractères? Peut-être que si est une adresse est : 21-avenue de la libération - Paris, il considère que 21 est un float. à ce moment là ça vaut le coup de transformer chaque ligne en str en utilisant: Var = str(Var)

        Bon courage

        • Partager sur Facebook
        • Partager sur Twitter
          9 novembre 2019 à 15:45:14 - Message modéré pour le motif suivant : banni pour multi-comptes


            9 novembre 2019 à 15:48:53

            bonjour,

            voici mon programme, je n'arrive pas à afficher "erreur" quand je mets des majuscules et des minuscules merci de m'aider
            def checkMajuscules(text):
                ALPHABET="ABCDEFGHIJKLMLNOPQRSTUVWXYZ"
                
                for c in text:
                    if (c in ALPHABET) == False:
                        return False
                    return True
                    
                    
            def cesar3(text):
                newChar = ""
                if checkMajuscules(text):
                    for c in text:
                        n=((ord(c)-65+3)%26)+65
                        newChar = newChar + chr(n)
                else:
                    newChar = newChar +"Erreur"
                
                return newChar 
                        
            carac=input("rentre le carctère en majuscule:")
            print(cesar3(carac))

            -
            Edité par HugPeg 9 novembre 2019 à 15:49:45

            • Partager sur Facebook
            • Partager sur Twitter
              9 novembre 2019 à 16:02:22

              Bonjour, 

              Dans ta fonction checkMajuscule ton return True était mal indenté. Il ne doit pas être dans la boucle for mais à la fin de la fonction (donc au même niveau que le for). Ainsi ta fonction retourne True uniquement si elle n'a trouvé aucune minuscule

              -
              Edité par Charles-HenriDupire 9 novembre 2019 à 16:18:20

              • Partager sur Facebook
              • Partager sur Twitter
                9 novembre 2019 à 16:11:38

                oui, mais maintenant j'ai "erreur" quand je mets des majuscules.

                Hors je veux que le programme affiche "erreur" que si je mets une minuscule ou des minuscules ou des majuscules et des minuscules

                • Partager sur Facebook
                • Partager sur Twitter
                  9 novembre 2019 à 16:20:57

                  Bonjour, 

                   ne tiens pas compte de mon premier message, je viens de le modifier mon précédent post. Dis moi si ça marche. 

                  Tu dois en fait mettre le return True au même niveau que le for

                  -
                  Edité par Charles-HenriDupire 9 novembre 2019 à 16:21:44

                  • Partager sur Facebook
                  • Partager sur Twitter
                    9 novembre 2019 à 16:44:51

                    ça fonctionne, merci beaucoup

                    -
                    Edité par HugPeg 10 novembre 2019 à 17:05:49

                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 novembre 2019 à 17:05:05

                      bonjour;

                      La prochaine question du TD est: Utilisez le dernier exercice du TD Fonctions Python pour formater le texte avant de le chiffrer.

                      mais je ne comprends pas la question; pourrais t-on me la reformuler svp

                      -
                      Edité par HugPeg 10 novembre 2019 à 17:05:37

                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 novembre 2019 à 19:04:56

                        je ne vois pas ce que la question entend par "formater". Il faudrait voir le sujet en entier.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          10 novembre 2019 à 19:24:31

                          comment vous envoyer le fichier?

                          j'en suis a l'étape 2

                          -
                          Edité par HugPeg 10 novembre 2019 à 23:44:59

                          • Partager sur Facebook
                          • Partager sur Twitter
                            11 novembre 2019 à 9:15:10

                            Je ne sais pas ce qu'il ya dans votre TD fonctions python mais j'imagine que formater le texte consiste à le transformer en liste de mots:exemple:"il fait beau" -> ['il', 'fait', 'beau']. Ainsi qu'à transformer toutes les minuscules en majuscule. Vous aurez sans doute la réponse en revoyant votre TD.
                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 novembre 2019 à 18:16:57

                              Bonjour, j'ai cette exercice à réaliser en ISN :

                              Exercice 1.6 ★★ On donne un extrait des logins d'accès au réseau du lycée :

                              alecoutur  Huz4
                              lmartin    monty
                              fsincere   gnugpl

                              1) Créer une variable de type dict qui contient les couples identifiant - mot de passe ci-dessus.
                              2) La saisie du login fournit deux variables identifiant et motdepasse : une pour l'identifiant et l'autre pour le mot de passe.
                              Construire une variable booléenne qui donne True en cas d'identification correcte, et False dans le cas contraire :
                              lmartin monty → True
                              alecoutur fqsdf → False
                              martin monty → False (ce cas est plus compliqué à traiter)

                              Quelqu'un pourrait m'aider ? :)

                              • Partager sur Facebook
                              • Partager sur Twitter
                                16 novembre 2019 à 15:45:22

                                Pour la 1 pas de soucis pour faire le dictionnaire, je pense que c'est correct.

                                >>> logins = {"alecoutur" : "Huz4", "lmartin" : "monty", "fsincere" : "gnugpl"}
                                >>>
                                >>> print(type(logins))
                                <type 'dict'>

                                Cependant, pour la question 2 je ne vois pas comment faire ça sans utiliser de structures conditionnelles...

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  16 novembre 2019 à 16:56:24

                                  Tu peux montrer ce que tu as déjà pour la 2, et comment tu ferais avec des structures conditionnelles ?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    16 novembre 2019 à 19:47:56 - Message modéré pour le motif suivant : Merci d'utiliser le bouton code du forum pour insérer votre code


                                      19 novembre 2019 à 14:03:25

                                      Bonjour !

                                      Comment on fait pour ne plus recevoir de notif des messages de ce fil de discussion ?

                                      Je trouve que c'est le fourre tout du n'importe quoi. Je préfère des sujets séparés.

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        27 novembre 2019 à 21:36:41 - Message modéré pour le motif suivant : Merci de créer votre propre sujet


                                          5 décembre 2019 à 13:30:18

                                          Bonjour à tous, j'ai une petite question de débutante. Est-ce normal que les apostrophes et les virgules soient visibles dans la console ? Je vous joins une image et le code :

                                          https://i31.servimg.com/u/f31/18/07/94/81/captur11.png

                                          #!/usr/bin/python
                                          
                                          # -*-coding:Utf-8 -*
                                          
                                          
                                          i=0
                                          nombre=int(input("Saisissez un nombre entier"))
                                          
                                          
                                          while i<=10 :
                                          	print(nombre," x ",i," = ",nombre*i)
                                          	i+=1
                                          
                                          
                                          
                                          """       Chemin d'acces : cd /home/jaenne/Documents/Python3.8            """



                                          Je vous remercie d'avance.

                                          -
                                          Edité par Jaenne 5 décembre 2019 à 13:32:20

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            5 décembre 2019 à 13:55:58

                                            C'est normal, c'est parce que tu utilises Python 2. Cette version est dépréciée, il faudrait que tu passes à Python 3.

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              5 décembre 2019 à 15:12:47

                                              Merci pour ta réponse rapide. Je pensais être en Python 3.8. Je l'ai téléchargé puis installé. Je ne comprends pas d’où vient l'erreur. Peut être de l'interpréteur ?

                                              #!/usr/bin/python


                                              Edit : J'ai vérifié :

                                              cd /usr/bin

                                              commande : ls

                                              Python3.8 n'est pas installé sur ma machine. J'ai donc corrigé le chemin vers ma dernière version :

                                              #!/usr/bin/python3.5

                                              Ça fonctionne beaucoup mieux ! encore merci.

                                              Je vais réessayer d'installer le 3.8.



                                              -
                                              Edité par Jaenne 5 décembre 2019 à 15:42:14

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                8 décembre 2019 à 10:45:55

                                                Salut, encore moi.

                                                Je viens de terminer le TP Zcasino. J'ai essayé de rendre le code propre.

                                                - J'aimerais avoir vos avis sur la présentation et l'organisation.

                                                - Ai-je le droit de faire des fonctions aussi conséquentes ?

                                                Merci d'avance.

                                                Main :

                                                #!/usr/bin/python3.5
                                                # -*-coding:Utf-8 -*
                                                
                                                """ Ce programme est un jeu de roulette de casino aux règles simplifiées. """
                                                
                                                from fonctionsCasinoZ import *
                                                
                                                quitter = False
                                                argentJoueur = 50
                                                
                                                
                                                print ("Bienvenue au Casino Z ! \nLe casino vous offre 50 €.")
                                                while quitter is False :
                                                
                                                	pariSurCase = False
                                                	mise = False
                                                		
                                                	while pariSurCase is False :
                                                		texte = "\n\n\n\n\nChoisissez votre case."
                                                		pariSurCase = testNombreEntier(texte, 0 , 49)
                                                	print("Vous avez parié sur la case",pariSurCase,".")
                                                
                                                	
                                                	while mise is False :
                                                		texte = "Choisissez votre mise."
                                                		mise = testNombreEntier(texte, 1 , argentJoueur)
                                                	print("Vous avez parié",mise,"€.")
                                                		
                                                
                                                	case = laBille()
                                                
                                                	argentJoueur = resolutionDuPari(pariSurCase,case,mise,argentJoueur)
                                                	print("Vous avez à présent",argentJoueur,"€.")
                                                
                                                
                                                
                                                	quitter=sortir(argentJoueur)
                                                
                                                
                                                
                                                """       Chemin d'acces : cd /home/jaenne/Documents/Python3.5/casinoZ           """

                                                Fonctions :

                                                #!/usr/bin/python3.5
                                                
                                                # -*-coding:Utf-8 -*
                                                
                                                from random import randrange
                                                from math import ceil
                                                
                                                def sortir(nb) :
                                                	"""1 : Le joueur a-t-il de l'argent ?
                                                	2 Le joueur veut-il continuer de jouer ?"""
                                                	if nb is 0 :
                                                		print("\n\n\n\nVous êtes à sec. Le casino vous remercie pour votre participation à son chiffre d'affaire.")
                                                		return True
                                                	else :
                                                		choix = input("Pour quitter le casino tapez la touche Q. L'abus de jeu est néfaste faîtes-vous aidez ! Pour continuez appuyez sur ENTREE : ")
                                                		if choix is "Q" or choix is "q" :
                                                			print("Merci d'avoir joué.")
                                                			return True
                                                		else : 
                                                			return False
                                                
                                                def laBille():
                                                	"""Définit la case gagnante."""
                                                	nbr = (randrange(49))
                                                	print("La bille est sur la case",nbr,".")
                                                	return nbr
                                                
                                                def testNombreEntier(texte,a,b):
                                                	"""Test si le nombre est entier
                                                	test si le nombre est dans l'intervale : a<nombre<b."""
                                                	print("Vous devez saisir un nombre entier entre",a,"et",b,"." )
                                                	nb = input(texte)
                                                	try :
                                                		nb = int(nb)
                                                	except ValueError:
                                                		print("Vous n'avez pas saisi un nombre entier.")
                                                		return False
                                                	if nb < a or nb > b :
                                                		print("Le nombre",nb,"n'est pas dans l'intervale.")
                                                		return False
                                                	else : 
                                                		return nb
                                                
                                                
                                                def resolutionDuPari(pariSurCase,case,mise,argent):
                                                	"""Résolution du pari et :
                                                	- distribution des gains 
                                                	- ou perte de la mise"""
                                                	moduloPari = pariSurCase%2
                                                	moduloCase = case%2
                                                	if pariSurCase is case :
                                                		print("Wohoo ! Vous avez le bon numéro !\nVous gagnez",mise*3,"€.")
                                                		return argent + mise*3
                                                	elif moduloPari is 0 and moduloCase is 0 :
                                                		print("Pair, noir gagne !\nVous gagnez",ceil(mise/2), "€.")
                                                		return argent + ceil(mise/2)
                                                	elif moduloPari is not 0 and moduloCase is not 0 :
                                                		print("Impair, rouge gagne !\nVous gagnez",ceil(mise/2), "€.")
                                                		return argent + ceil(mise/2)
                                                
                                                	else :
                                                		print("Vous avez perdu votre mise de",mise,"€.")
                                                		return argent-mise
                                                
                                                
                                                
                                                
                                                




                                                -
                                                Edité par Jaenne 8 décembre 2019 à 10:53:10

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  8 décembre 2019 à 13:41:55

                                                  Pour ce qui est du style, oriente-toi vers la PEP8.

                                                  Tu y verras notamment que les noms de variables et fonctions snake_case sont préférables à camelCase, comment placer les espaces autour des opérateurs (autour du =, du %, derrière la virgule, etc.), et qu'on ne compare pas de valeur avec True ou False, on teste juste la valeur (on écrit while not mise et pas while mise is False).

                                                  Et surtout, SURTOUT, on ne compare jamais des nombres avec is, c'est == l'opérateur d'égalité !

                                                  Pour ce qui est des fonctions conséquentes, de laquelle parles-tu ? La plus longue fonction que je vois dans ton code fait 14 lignes de code, ça n'a rien de conséquent. Mais plus qu'une limite sur le nombre de lignes, il faut les limiter en termes de fonctionnalités : plusieurs fonctions qui font une seule chose bien, qu'une seule fonction qui fait plein de choses.

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    8 décembre 2019 à 13:56:42

                                                    Merci, ça va m’être très utile, je vais étudier ça de prêt.

                                                    Du coup, il faut que je découpe mieux mes fonctions ? Elles gèrent trop de choses ou ça va ?

                                                    Ma fonction

                                                    def testNombreEntier(texte,a,b):
                                                    	"""Teste si le nombre est entier
                                                    	teste si le nombre est dans l'intervale : a<nombre<b."""
                                                    	print("Vous devez saisir un nombre entier entre",a,"et",b,"." )
                                                    	nb = input(texte)
                                                    	try :
                                                    		nb = int(nb)
                                                    	except ValueError:
                                                    		print("Vous n'avez pas saisi un nombre entier.")
                                                    		return False
                                                    	if nb < a or nb > b :
                                                    		print("Le nombre",nb,"n'est pas dans l'intervale.")
                                                    		return False
                                                    	else : 
                                                    		return nb



                                                    fait plusieurs choses dans le but de tester si la saisie utilisateur est utilisable mais on peut aussi dire qu'elle ne fait qu'une chose : tester une saisie.



                                                    -
                                                    Edité par Jaenne 8 décembre 2019 à 14:48:03

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      8 décembre 2019 à 14:56:48

                                                      Je trouve que ça va au niveau découpage, même si j'aurais tendance à ne pas faire d'input dans les sous-fonctions et de plutôt leur faire recevoir l'entrée en paramètre, c'est ainsi plus facile à tester.

                                                      Par contre à regarder ta fonction testNombreEntier, il risque d'être difficile d'entrer 0 si c'est permis par les bornes : 0 et False valent la même chose. Il te faudrait utiliser des exceptions ou renvoyer un couple de valeurs (ok, nb).

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter

                                                      Exercices du cours Python / postez ici !

                                                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                      • Editeur
                                                      • Markdown