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 :

[Débutant] type de variable


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 64
    Points : 117
    Points
    117
    Par défaut [Débutant] type de variable
    Bonjour,

    Dans ce code pour décomposer un entier en produits de facteurs premiers, pourquoi ma variable 'n' est de typre float ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    def divise():
        global n
        while n%d==0:
            facteur.append(d)
            n/=d
    n=int(input("Entier à décomposer : "))
    facteur=[]
    d=2
    divise()
    d=3
    while True:
        divise()
        d+=2
        if d*d>n:
            break
    if n>1:
        facteur.append(n)
    print(facteur)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 266
    Points : 1 845
    Points
    1 845
    Par défaut
    parce que la division classique te renverra un float, tu peux utiliser la division entière (//)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2011
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 64
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par umfred Voir le message
    parce que la division classique te renverra un float, tu peux utiliser la division entière (//)
    Merci!!!!!!!

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    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 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par skaarj Voir le message
    Dans ce code pour décomposer un entier en produits de facteurs premiers
    Je ne comprends pas à quoi sert la fonction "divise()". Ou plutôt je ne comprends pas pourquoi elle ne fait pas le travail entièrement que tu es obligé de rajouter ensuite un code supplétif pour obtenir ton résultat.
    Accessoirement passer par des globales pour éviter de se farcir un passage de paramètre est plus que mauvais. Ca pête complètement l'indépendance des fonctions (ta fonction ne sera pas utilisable par un autre... remarque vu son état de toute façon...)
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    def decomp(n):
    	facteur=[1,]
    	d=2
    	while (q:=n//d) >= d:				# On s'arrête quand le diviseur est trop grand
    		if n%d == 0: 
    			facteur.append(d)
    			n=q
    		else: d+=(2 if d > 2 else 1)		# Permet de sauter les diviseurs pairs
    	# while
    	return (facteur + [n,]) if n > 1 else facteur
    # decomp()
     
    n=int(input("Entier à décomposer : "))
    facteur=decomp(n)
    print(n, facteur)
    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]

  5. #5
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Octobre 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2015
    Messages : 56
    Points : 65
    Points
    65
    Par défaut Décomposition en facteurs premiers
    Ce programme retourne une erreur quand j'essaie 257 :
    while (q!=n//d) >= d:
    NameError: name 'q' is not defined
    >>>

    Merci.

  6. #6
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 893
    Points : 1 564
    Points
    1 564
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par pzorba75 Voir le message
    Ce programme retourne une erreur quand j'essaie 257 :
    while (q!=n//d) >= d:
    NameError: name 'q' is not defined
    >>>

    Merci.
    Bonjour.
    Ce n'est pas ce qui est dans le code proposé par Sve@r, mais .
    L'opérateur morse := assigne à la variable q le résultat de l'opération n//d
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Type et variable
    Par cloogy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/12/2004, 15h07
  2. [SQL S 2000] Type de variable ?
    Par Tankian dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/06/2004, 14h03
  3. Assembleur et type de variable delphi
    Par declencher dans le forum Langage
    Réponses: 5
    Dernier message: 20/06/2004, 23h21
  4. Comparer les types de variable
    Par onipif dans le forum ASP
    Réponses: 11
    Dernier message: 27/05/2004, 18h07
  5. Types de variables entre mysql/php et flash
    Par ramses83 dans le forum Flash
    Réponses: 2
    Dernier message: 06/10/2003, 18h35

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