Jump to content
  • 0
Melde dich an, um diesem Inhalt zu folgen  

[Python] String splitten und Größe vergleichen

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])

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

3 Antworten auf diese Frage

Empfohlene Beiträge

Gast
Du kommentierst als Gast. Wenn du bereits einen Account hast kannst du dich hier anmelden.
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

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

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

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

Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2018 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

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

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung