Verifier la présence d'un élément dans une liste

Verifier la présence d'un élément dans une liste - Python - Programmation

Marsh Posté le 26-09-2008 à 17:07:48    

Salut

 

je me remet doucement a python, et j'essaie de faire la chose suivante :

 

Je génère une liste d'adresses IP à partir d'une boucle. J'appelle ensuite un script avec comme argument une adresse IP, et je test ensuite si l'IP passée en argument fait partie de la liste ou pas. Le problème est que ma liste d'IP va de 192.168.1.200 à 192.168.1.255. Si je met comme IP 192.168.1.232 par exemple, ok ca fonctionne, mais si je met 192.168.1.2 ca me sort que l'IP est dans la liste...

 

Voici mon code (newbie inside) :

 
Code :
  1. q = sys.argv[1]
  2. dhcp = []
  3. for i in range(200,255):
  4.         x = "192.168.1.%s" % (i)
  5.         dhcp.append(x)
  6.         if (q) in x:
  7.                 print "\n%s : Cette IP appartient au pool DHCP\n" % (q)
  8.                 sys.exit(0)
 

Merci par avance pour votre aide !


Message édité par syl94 le 26-09-2008 à 17:18:08
Reply

Marsh Posté le 26-09-2008 à 17:07:48   

Reply

Marsh Posté le 26-09-2008 à 21:10:09    

Salut,
tu as une petite erreur, il faut vérifier si ton argument appartient a la liste ('dhcp'), pas a l'ip que tu viens de générer ('x').
de plus tu le fais a chaque iteration de ta boucle, une fois a la fin suffit.
 

Code :
  1. q = sys.argv[1]
  2. dhcp = []
  3. for i in range(200,255):
  4.         x = "192.168.1.%s" % (i)
  5.         dhcp.append(x)
  6. if (q) in dhcp:
  7.         print "\n%s : Cette IP appartient au pool DHCP\n" % (q)
  8.         sys.exit(0)


 
 
ou alors tu peux comparer a chaque itération mais avec ==  
mais c'est plus couteux que la solution précédente.

Code :
  1. q = sys.argv[1]
  2. dhcp = []
  3. for i in range(200,255):
  4.         x = "192.168.1.%s" % (i)
  5.         dhcp.append(x)
  6.         if q == dhcp:
  7.                 print "\n%s : Cette IP appartient au pool DHCP\n" % (q)
  8.                 sys.exit(0)


 
 
 

Reply

Marsh Posté le 27-09-2008 à 16:58:58    

Ca fonctionne nickel merci ! En relisant les docs python, ca parait logique en fait :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed