Zum Inhalt springen
  • 0

[Python] String splitten und Größe vergleichen


jk86

Frage

Moin, 

ich schreibe gerade just for fun, um den Umgang mit Strings besser zu lernen, einen kleinen Subnetting-Rechner.

Dazu werden eine IPv4-Adresse und eine Subnetzmaske eingegeben. Sie sollen dann bitweise AND-verknüpft und ein Ergebnis ausgegeben werden.

Ich bin erst so weit, dass ich die IP-Adressen/Subnetzmasken als String eingeben kann und der bei den Punkten der IP-Adresse (z.B. 192.168.0.1) gesplittet wird. Das ist ja wichtig für die Berechnung im Anschluss, dass der String nicht als ganzes behandelt wird, sondern in vier einzeln ansprech- und berechenbaren Teilstrings.

Jetzt mache ich mir über die Fehlerbehandlung Gedanken. Eine Idee wäre, einen Fehler auszuspucken, wenn ein Element des Strings größer als 255 ist. 

Wie mache ich das in Python?

Muss ich dazu explizit casten?

Merci

 

Code bisher: (teilweise pseudo)

# INPUT IPv4 Address and subnet mask
print("Please enter IPv4 address (in dotted decimal notation):")
ipaddr = input()
print("Please enter IPv4 subnet mask (in dotted decimal notation):")
subnetmask = input()

# STRING SPLITTING
bytelistIP = ipaddr.split(".")
bytelistSNM = subnetmask.split(".")

# FEHLER ABFANGEN - IP-Adresse: Fehler ausgeben, wenn
	# ein Element größer als 255 ist:
	# ein Element kleiner als 0 ist
		# if bytelistIP[x] < 0: print("Invalid Input: Byte cannot be negative. Enter zero or a positive number.")
	# die Länge der Strings jeweils größer als 12 plus drei Punkte ist
		# if len(bytelistIP) > 15: print("Invalid Input: Address is too long. Enter a valid address.")
	# die Länge der Strings jeweils kleiner als 4 plus drei Punkte ist
		# if len(bytelistIP) < 7: print("Invalid Input: Address is too short. Enter a valid address.")
	# ein String mehr oder weniger als drei Punkte enthält
		# numberOfDots = find(".") -> if numberOfDots is not 3: print("Invalid Input: An IPv4 address needs three dots. No more, no less.")
	# Stellen zwischen Punkten leer sind
		# if bytelistIP[x] is NULL: print("Invalid Input: Byte is empty. Enter a valid number.")
	# Zahlen oder Sonderzeichen eingegeben wurden

# FEHLER ABFANGEN - SUBNETZMASKE: Fehler ausgeben, wenn zusätzlich zu den Fehlern der IP-Adresse
	# ein Element größer ist als das vorherige Element

# BITWISE OPERATION to calculate subnets
	#kommt noch 

# FOR TEST USES ONLY: OUTPUT OF ELEMENTS

#IP-ADDRESS
for i in range(0,4):
	print("Element:", i, bytelistIP[i])
	x = int(bytelistIP[i])
	if x > 255:
		print("error")

print("*********************************")

#SUBNET MASK          
for j in range (0,4):
	print("Element:", j, bytelistSNM[j])
Link zu diesem Kommentar
Auf anderen Seiten teilen

3 Antworten auf diese Frage

Empfohlene Beiträge

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...