Welcome, guest | Sign In | My Account | Store | Cart

un petit programme ecrit en mode sur l'utilisation de claase qui convertit une adresse ip en binaire, donne la classe de lip etc. je suis un debutant en python. je pense que vous aller ameliorer mon ptit.presque unitule

Python, 33 lines
 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
 class Class_Ip :
... 	def __init__(self):
... 		self.listeip =[]
... 	def saisie(self):
... 		i=0
... 		while i< 4 :
... 			self.val =raw_input("entrer l adresse ip svp")
... 			self.listeip.append(self.val)
... 			i +=1
... 	def affiche(self):
... 		return ".".join(self.listeip)
... 	        print ("l adresse ip saisie est:")
... 	        print self.listeip
... 	def classe_ip(self):
... 		self.li = int(self.listeip[0])
... 		if self.li <=127 :
... 			print("la classe de l adresse ip est: A")
... 		elif self.li >=128 and self.li <=191: 
... 			print("la classe de l adresse ip est: B")
... 		elif  self.li >=192 and self.li <=223 :
... 			print("la classe de l adresse ip est: C")
... 		elif self.li >=224 and self.li <=239 :
... 			print("la classe de l adresse ip est: D")
... 		elif self.li >=240 and self.li <=255 :
... 			print("la classe de l adresse ip est: E")
... 	def binaire(self):
... 		self.listebinaire = []
... 		j=0
... 		while j<4:
... 			self.listebinaire.append(bin(int(self.listeip[j])))
... 			j +=1
... 		return ".".join(self.listebinaire)
... 	        

3 comments

el riouga (author) 11 years, 5 months ago  # | flag

ceci est mon premier post.je remercie beaucoup tous les administrateurs et contributeurs de ce site

Tony Flury 11 years, 4 months ago  # | flag

A few comments - and maybe they are trival to be honest:

1) I don't like the idea of a class prompting for input. To be more genrally useful it should take an address as input maybe into the constructor.

2) Your method classe_ip would be better to just return a single letter - 'A' to 'E' - and allow the code that calls the method determine what to do with the result - either print it or something else.

3) your code for binarie method would be better thus :

def binaire(self):
    self.listebinaire = []
    for e in self.listeip:
   self.listebinaire.append(bin(int(e)))
return ".".join(self.listebinaire)

i.e. using the list iteration methods rather than a counting loop

4) in your classe_ip method - you don't need to create a new attribute called self.li - just create a local variable.

5) in your affiche method - the two print statements won't do anything, as they are after the return statement.

el riouga (author) 11 years, 4 months ago  # | flag

merci beaucoup pour votre commentaire.j y tiendre compte.en fait je suis un nouveau apprenant de python. "voici ce que je propose de faire c'est de pouvoir remplir une liste avec une suite de 1 et 0 en fonction de val fournit par l'utilisateur exple pour val=16 on a avec une liste len(l[1]) + len(l[2])=16 et l=['11111111','11111111','00000000','00000000'] merci de me proposer une solution.bonne suite a vous

Created by el riouga on Fri, 19 Oct 2012 (MIT)
Python recipes (4591)
el riouga's recipes (1)

Required Modules

Other Information and Tasks