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 :

Comment imposer le nombre de digit derrière la virgule


Sujet :

Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Points : 55
    Points
    55
    Par défaut Comment imposer le nombre de digit derrière la virgule
    Bonjour,

    j'ai besoin d'imposer le nombre de digit derrière la virgule pour faire une recherche dans un fichier.
    en fait, je cherche une valeur mesurée pour une fréquence donnée (tableau).

    j'ai écrit ceci :
    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
    19
    20
    21
    22
    23
    24
     
    fileS21 = tkFileDialog.askopenfilename(filetypes = [("Txt", "*.txt"),("Fichier Texte","*.txt")],
                                                   title = 'Sélection du fichier des mesures du S21')
    Freq = []
    ModS21 = []
    for ligne in open(fileS21,'r'):
        tb = ligne.split('\t')
        Freq.append(tb[0])
        ModS21.append(tb[3])
    del Freq[0]
    print Freq
    del ModS21[0]
    print ModS21
     
    gammeF =[1500000000, 4300000000]
    listeA = [3.034, 3.036, 3.039, 3.044]
    listeB = [7.004, 7.01, 7.009, 7.004]
     
    for f in gammeF :
      w = 2*pi*f              #pulsation
      valf = f/1e9
      print "valf = ", valf
      lignef = Freq.index(valf)
      print "numero ligne =", lignef
    donc pour la 1ère valeur de gammeF soit 1500000000, j'obtiens valf =1.5, mais dans mon tableau j'ai : 1.500000000

    et au final j'obtiens l'erreur suivante :

    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
    19
     
    C:\Python25\Programme>Integration_resistivite.py
    ['0.100000000', '0.200000000', '0.300000000', '0.400000000', '0.500000000', '0.6
    00000000', '0.700000000', '0.800000000', '0.900000000', '1.000000000', '1.100000
    000', '1.200000000', '1.300000000', '1.400000000', '1.500000000', '1.600000000',
     '1.700000000', '1.800000000', '1.900000000']
    ['1.000248772348', '0.999530019625', '0.999166067351', '0.998686670313', '0.9992
    99550984', '0.998267903740', '0.998400291998', '0.997993118794', '0.998283431448
    ', '0.998069369609', '0.997635895324', '0.997327631253', '0.997367551644', '0.99
    7374272975', '0.997299246981', '0.996844083881', '0.996869520487', '0.9970266746
    40', '0.996721031386']
    valf =  1.5
    Traceback (most recent call last):
      File "C:\Python25\Programme\Integration_resistivite.py", line 40, in <module>
        lignef = Freq.index(valf)
    ValueError: list.index(x): x not in list
     
    C:\Python25\Programme>pause
    Appuyez sur une touche pour continuer...
    comment dois-je faire pour résoudre mon pb ? est-ce que je dois transformer ma valeur obtenu en chaine de caractère et ensuite rechercher cette chaine dans mon tableau ?

    je vous remercie par avance pour votre réponse et votre aide.

    bien cordialement,

    Patricia

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    125
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Août 2008
    Messages : 125
    Points : 55
    Points
    55
    Par défaut voilà ce que j'ai écrit pour y arriver
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    for f in gammeF :
      w = 2*pi*f              #pulsation
      valf = f/1e9
      print "valf = ", valf
      newvalf = "%11.9f" % valf
      print "newvalf =", newvalf
      lignef = Freq.index(newvalf)
      print "numero ligne =", lignef
    et voici ce que j'obtiens comme résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    valf =  1.5
    newvalf = 1.500000000
    numero ligne = 14
    valf =  4.3
    newvalf = 4.300000000
    numero ligne = 42
     
    C:\Python25\Programme>pause

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/12/2008, 10h06
  2. Réponses: 2
    Dernier message: 09/06/2008, 14h43
  3. Comment limiter le nombre de chiffre après la virgule ?
    Par Hoopsy dans le forum C++Builder
    Réponses: 15
    Dernier message: 06/07/2007, 16h12
  4. Comment fixer le nombre de chiffre après la virgule d'un flottant
    Par moon93 dans le forum Général Python
    Réponses: 1
    Dernier message: 15/06/2007, 16h49
  5. Comment imposer un nombre de chiffre après la virgule
    Par Yagami_Raito dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2007, 10h24

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