Python :: Aufgabe #101 :: Lösung #3
3 Lösungen

#101
Ermitteln der IP-Klasse
Anfänger - Python
von Energy
- 09.03.2016 um 14:48 Uhr
Schreibe ein Programm, was nach einer IP-Adresse fragt. Anschließend soll die IP-Klasse ermittelt und ausgegeben werden.
#3

von Peter... (160 Punkte)
- 19.08.2016 um 17:57 Uhr
Hier meine Lösung. Es wurde Python 3 genutzt.
Habe ich die IP-Klasse als Netzklasse richtig verstanden?
https://de.wikipedia.org/wiki/Netzklasse
Python-Code
Habe ich die IP-Klasse als Netzklasse richtig verstanden?
https://de.wikipedia.org/wiki/Netzklasse

def Abfrage(x, adress_part, Adresse): if x[0] <= adress_part <= x[1]: print('\nDie Adresse', Adresse, 'ist in der Netzklasse', x[2]+'.') Adresse = input('Bitte geben Sie eine IP-Adresse der Form n.n.n.n ein:\n') parts = Adresse.split('.') #Die folgende if-Abfrage und Schleife dient zur Abfangung falscher Eingaben try: if Adresse.count('.') != 3: raise SyntaxError() for i in parts: if int(i) > 255: raise SyntaxError() #Dieser Teil ermittelt anhand des ersten Teils der Adresse die Klasse adress_part = int(Adresse[0:Adresse.index('.')]) tupel = ((0, 127, 'A'), (128, 191, 'B'), (192, 223, 'C'), (224, 239, 'D'), (240, 255, 'E')) for j in tupel: Abfrage(j, adress_part, Adresse) except: print('\nSie haben eine falsche Eingabe getätigt!\nDie Adresse darf nur aus Zahlen bestehen\nund muss durch drei "." aufgespalten sein!\n Z.B. 203.0.113.195' ) #Mir ist bewusst, dass es auch die unten stehende Möglichkeit gibt, die zudem performanter ist, als die obere, aber ich wollte das Ganze etwas verkürzen. # if 0 =< adress_part <= 127: # print('\nDie Adresse', Adresse, 'ist in der Netzklasse A.') # elif 128 =< adress_part <= 191: # print('\nDie Adresse', Adresse, 'ist in der Netzklasse B.') # elif 192 =< adress_part <= 223: # print('\nDie Adresse', Adresse, 'ist in der Netzklasse C.') # elif 224 =< adress_part <= 239: # print('\nDie Adresse', Adresse, 'ist in der Netzklasse D.') # elif 240 =< adress_part <= 255: # print('\nDie Adresse', Adresse, 'ist in der Netzklasse E.')
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1