Enlever des décimales à un nombre en python

Résolu
StarlineG Messages postés 6 Statut Membre -  
StarlineG Messages postés 6 Statut Membre -
Bonjour tout le monde,
je suis en train de créer un programme en python permettant de s'entrainer à réciter le nombre π (pi) (oui je sais sa sert à rien

3 réponses

  1. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Salut StarlineG,

    Si j'ai bien compris ta question (qui n'est pas vraiment formulée), tu peux convertir le nombre en chaîne et afficher les caractères de la chaîne un par un.

    import math
    
    st = str(math.pi)
    for i in range(len(st)):
        print(st[:i+1])
        input("Press Enter to continue...")

    donne :

     python3 35651885.py
    3
    Press Enter to continue...
    3.
    Press Enter to continue...
    3.1
    Press Enter to continue...
    3.14
    Press Enter to continue...
    3.141
    Press Enter to continue...
    3.1415
    Press Enter to continue...
    etc.

    Dal
    0
    1. StarlineG Messages postés 6 Statut Membre
       
      Merci quand meme dal, ta méthode est un peu compliquée mais bon.
      0
  2. StarlineG Messages postés 6 Statut Membre
     
    Mince j'avais pas vu mais ma question n'as pas été entièrement écrite sûrement un bug désolé je vous la remet :
    Bonjour tout le monde,
    je suis en train de créer un programme en python permettant de s'entrainer à réciter le nombre π (pi) (oui je sais sa sert à rien) :
    import time
    print("Programme permettant de s'entrainer à réciter pi")
    time.sleep(2)
    décimal = int(input("Combien de décimales voulez vous réciter ? "))
    pi = float(input("Saissisez Pi (arrondiser vers le haut la dernière décimal) : "))
    π = 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912
    π = round(π,décimal)
    if pi == π :
    print("Bravo")

    donc voila je voulais savoir comment enlever un certain nombre de décimales sans arrondir le nombre car la fonction round() fait le taf mais elle arrondi le nombre bref quelqu'un sait comment faire ?
    0
  3. [Dal] Messages postés 6122 Date d'inscription   Statut Contributeur Dernière intervention   1 108
     
    Le mieux est de comparer des chaînes de caractères, que tu peux découper avec la notation st[i:j], car c'est un objet itérable.

    https://docs.python.org/3/library/stdtypes.html#common-sequence-operations

    Voilà ce que cela donne :
    π = "3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912"
    
    # disons que l'utilisateur veut deviner 4 décimales
    décimales = 4
    # et qu'il tape cette chaîne de caractères
    pi = "3.1415"
    
    # on découpe π en prenant 4 + 2 caractères (on compte
    # le 3 et le point aussi), que l'on compare à la saisie
    # de l'utilisateur
    if pi == π[:décimales+2]:
        print("Bravo")

    tu as des exemples là :
    https://www.pythoncentral.io/cutting-and-slicing-strings-in-python/
    0
    1. StarlineG Messages postés 6 Statut Membre
       
      Super merci dal !
      0
    2. StarlineG Messages postés 6 Statut Membre
       
      Je viens de m'en rendre compte que d'après mon programme je demande à l'utilisateur de mettre le nombre pi sauf que le problème c'est qu'un nombre avec le type float() ne peut pas faire cela !
      0
    3. StarlineG Messages postés 6 Statut Membre
       
      Non c'est bon il fallait juste mettre en type str() pi.
      0