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:

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])
j'ai tenté de faire de mettre ceci idxTempo=tempo.index(abs(tempo2[0])) ou idxTempo=abs(tempo.index(tempo2[0]))
mais j'ai des erreur concernant abs(***) ce que je peux concevoir.

merci pour vos piste.