Bonjour,
pour un exercice je doit trouver la valeur la plus prés de zéro en fonction des nombre (positif et/ou négatif) saisie en ligne de commande.
jusque l'a j'ai réussi a géré cette recherche, la ou je bloque c'est le cas ou je n'ais que des nombre négatif.
En speudo code:
je stock la quantité de valeur a analyser demandé en ligne de commande
je boucle sur la saisie pour alimenter une premier liste demandé en liste de commande
je refait une boucle pour alimenté une seconde liste pour avoir les valeurs absolue.
je trie ma seconde liste.
je récupère la valeur stocker dans la première liste en fonction de l'index de la première valeur dans la liste 2.
je vérifie si je n'ais pas 2 fois la même valeur dans la liste 2 ( possible car j'ai tout les valeurs en absolue)
mon problème viens quand je donne des valeurs uniquement négative style "-12 -9 -87 -2", mon système ne trouve pas la valeur 2
tout cela car j'ai mon second tableau qui est en valeur absolu.
pour bien comprendre ce que je fais voici mon code:
j'ai tenté de faire de mettre ceci idxTempo=tempo.index(abs(tempo2[0])) ou idxTempo=abs(tempo.index(tempo2[0]))
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
25
26
27
28
29
30
31
32
33
34
35 #!/usr/bin/env python3 # coding=utf-8 import sys import math tempo = [] tempo2 = [] resultat = 0 n = int(input()) # le nombre de saisie a analyser if n==0: print(0) else : for i in input().split(): a = int(i) tempo.append(a) t = int(i) for i in range(len(tempo)): #permet d'avoir les valeurs absolue tempo2.append(abs(tempo[i])) tempo2.sort() tempo.sort() print("tab1 : ",tempo) print("tab2 :",tempo2) idxTempo=tempo.index(tempo2[0]) nbrTempo=tempo2.count(tempo2[0]) print(idxTempo) print(nbrTempo) if nbrTempo==0: print(tempo[0]) else: print(tempo2[0])
mais j'ai des erreur concernant abs(***) ce que je peux concevoir.
merci pour vos piste.
Partager