Il s'agit ici de se familiariser avec les blocs d'instructions. Il peuvent être :
Un bloc d'instructions se matérialise avec une indentation, généralement :
espace.
Les lignes de code seront écrites avec l'EDI (environnement de développement intégré) EduPython.
Tester le programme ci-dessous.
Il présente la méthode split()
qui sectionne une chaîne de caractères pour former une liste.
Chaque élément de la liste est une chaîne de caractères.
txt="Bonjour à tous!" print(txt.split())
Le séparateur, par défaut un espace, est le point dans le cas ci-dessous.
adIP="192.168.34.17" adIP=adIP.split(".") print("Adresse IP convertie en liste : ", adIP) print("Nombre d'éléments de la liste : ", len(adIP)) print("Premier élément de la liste : ", adIP[0]) print("Dernier élément de la liste : ", adIP[3])
Une interface réseau d'ordinateur connecté à internet reçoit au moins une adresse IP. Il en existe deux sortes :
Une adresse IPv4 s'écrit avec 4 nombres entiers séparés par un point.
Chaque nombre est compris entre 0 et 255.
Exemple : 200.172.10.20
Vérifier l'adresse IPv4 en testant la taille de la liste avec la fonction len()
.
Elle doit être égale à 4.
adIP=input("Quelle est l'adresse IPv4? ") adIP=adIP.split(".") if len(adIP)==4 : print("L'adresse IPv4 est valide.") else : print("L'adresse IPv4 n'est pas valide!")
Vérifier l'adresse IPv4 en testant chaque élément de la liste. Ils doivent être compris entre 0 et 255.
adIP=input("Quelle est l'adresse IPv4? ") adIP=adIP.split(".") valide="oui" for i in range(4) : # i prend les valeurs 0, 1, 2 puis 3 if int(adIP[i])<0 or int(adIP[i])>255 : valide="non"; if valide=="oui" : print("L'adresse IPv4 est valide.") else : print("L'adresse IPv4 n'est pas valide!")
Variante :
... for element in adIP : if int(element)<0 or int(element)>255 : valide="non"; ...
Tester à la fois la taille et les éléments de la liste. Les sous-programmes, ici deux fonctions, rendent le code plus lisible.
def nombre_elements(adIP) : if len(adIP)!=4 : return False return True def valeurs_elements(adIP) : for element in adIP : if int(element)<0 or int(element)>255 : return False return True adIP=input("Quelle est l'adresse IPv4? ") adIP=adIP.split(".") if nombre_elements(adIP) and valeurs_elements(adIP) : print("L'adresse IPv4 est valide.") else : print("L'adresse IPv4 n'est pas valide!")
Souvent, une fonction s'améliore au fil du temps.
La fonction Binaire()
ci-dessous :
nbdevant être compris entre 0 et 255.
def Binaire(nb) : a=b=c=d=e=f=g=h="0" if nb>=128: a="1" nb=nb-128 if nb>=64: b="1" nb=nb-64 if nb>=32: c="1" nb=nb-32 if nb>=16: d="1" nb=nb-16 if nb>=8: e="1" nb=nb-8 if nb>=4: f="1" nb=nb-4 if nb>=2: g="1" nb=nb-2 h=str(nb) return a+b+c+d+e+f+g+h print(Binaire(45))
La fonction bin()
prend un nombre entier en paramètre et retourne :
0b, signifiant qu'il s'agit d'un nombre binaire.
Exemple :
txt=bin(45) print(txt) print(type(txt))
La fonction Binaire()
modifiée :
bin()pour effectuer la conversion.
0b.
def Binaire(nb) : txt=bin(nb) txt=txt[2:] # txt=txt[2:len(txt)] if len(txt)==1: txt="0000000"+txt if len(txt)==2: txt="000000"+txt if len(txt)==3: txt="00000"+txt if len(txt)==4: txt="0000"+txt if len(txt)==5: txt="000"+txt if len(txt)==6: txt="00"+txt if len(txt)==7: txt="0"+txt return txt print(Binaire(45))
En réunissant les lignes 2 et 3 en une seule ligne
et en notant que le nombre de zéros à ajouter vaut 8-len(txt)
:
def Binaire(nb) : txt=bin(nb)[2:] return (8-len(txt))*"0"+txt print(Binaire(45))
Binaire(), écrire un programme :
1. Ecrire un programme :
espace.
La fonction Binaire()
sera appelée à quatre reprises.
Vous pouvez vous inspirer du code ci-dessous.
def Binaire(nb): ... adIP=input("Quelle est l'adresse IPv4? ") adIP=adIP.split(".") resultat="" for element in adIP: ... print("L'adresse IP en notation binaire est : ",resultat)
2. Compléter ce programme pour vérifier, au préalable, la validité de l'adresse IPv4 entrée par l'utilisateur. Afficher un message d'erreur si ce n'est pas le cas.
1. Réaliser le programme :
2. Modifier le programme pour vérifier :
0ou
1.
1010 0111 =
27 + 25 + 22 + 21 + 20
(en décimal) =
128 + 32 + 4 + 2 + 1 =
167