Python :: Aufgabe #256 :: Lösung #3
5 Lösungen
#256
Berechnen der Prüfziffer einer EAN- Nummer
Anfänger - Python
von JKooP
- 29.03.2020 um 13:53 Uhr
Schreibe ein Programm mit dem man sowohl die Prüfziffer einer EAN- Nummer (Europäische Artikel- Nummerierung) berechnen als auch überprüfen kann.
Die EAN- Nummer besteht aus 13 Ziffern, wobei es sich bei der letzten Ziffer um die Prüfziffer handelt.
Beispiel für eine EAN: 978381582086[?]
Die Prüfziffer wird berechnet, indem man die ersten 12 Ziffern von links beginnend abwechselnd mit 1 und 3 multipliziert und anschließend die Produkte summiert.
Die Differenz zum nächsten Vielfachen von 10 ist die Prüfziffer.
Ist die Summe durch 10 teilbar, ist die Prüfziffer die Ziffer 0.
9·1 + 7·3 + 8·1 + 3·3 + 8·1 + 1·3 + 5·1 + 8·3 + 2·1 + 0·3 + 8·1 + 6·3
= 9 + 21 + 8 + 9 + 8 + 3 + 5 + 24 + 2 + 0 + 8 + 18 = 115
115 + 5 = 120 ⇒ Prüfziffer: 5
Viel Spaß
Die EAN- Nummer besteht aus 13 Ziffern, wobei es sich bei der letzten Ziffer um die Prüfziffer handelt.
Beispiel für eine EAN: 978381582086[?]
Die Prüfziffer wird berechnet, indem man die ersten 12 Ziffern von links beginnend abwechselnd mit 1 und 3 multipliziert und anschließend die Produkte summiert.
Die Differenz zum nächsten Vielfachen von 10 ist die Prüfziffer.
Ist die Summe durch 10 teilbar, ist die Prüfziffer die Ziffer 0.
9·1 + 7·3 + 8·1 + 3·3 + 8·1 + 1·3 + 5·1 + 8·3 + 2·1 + 0·3 + 8·1 + 6·3
= 9 + 21 + 8 + 9 + 8 + 3 + 5 + 24 + 2 + 0 + 8 + 18 = 115
115 + 5 = 120 ⇒ Prüfziffer: 5
Viel Spaß
#3
von Asthos (410 Punkte)
- 03.04.2020 um 22:08 Uhr
Python-Code
#!/usr/bin/env python # -*- coding: utf-8 -*- #Aufgabe: #Schreibe ein Programm mit dem man sowohl die Prüfziffer einer EAN- Nummer (Europäische Artikel- Nummerierung) berechnen als auch überprüfen kann. #Die EAN- Nummer besteht aus 13 Ziffern, wobei es sich bei der letzten Ziffer um die Prüfziffer handelt. #Beispiel für eine EAN: 978381582086[?] #Die Prüfziffer wird berechnet, indem man die ersten 12 Ziffern von links beginnend abwechselnd mit 1 und 3 multipliziert und anschließend die Produkte summiert. #Die Differenz zum nächsten Vielfachen von 10 ist die Prüfziffer. #Ist die Summe durch 10 teilbar, ist die Prüfziffer die Ziffer 0. #9·1 + 7·3 + 8·1 + 3·3 + 8·1 + 1·3 + 5·1 + 8·3 + 2·1 + 0·3 + 8·1 + 6·3 #= 9 + 21 + 8 + 9 + 8 + 3 + 5 + 24 + 2 + 0 + 8 + 18 = 115 #115 + 5 = 120 ⇒ Prüfziffer: 5 EAN1 = '9783815820860' EAN2 = '978381582086' def get_pruefziffer(ean): zwischensumme = 0 for i, c in enumerate(ean): if i == 12: #mehr Einträge müssen nicht aufaddiert werden break if i % 2 == 1: #ungerade Einträge zwischensumme += int(c) * 3 else: #gerade Einträge zwischensumme += int(c) #Prüfziffer ist der Rest der ganzzahligen Division mit 10 return zwischensumme % 10 #Überprüfen ob die Prüfziffer auch stimmt def check_ean(ean): if len(ean) != 13: print(str(ean) + ' hat nicht die richtige Länge') elif get_pruefziffer(ean) != ean[12]: print(str(ean) + ' hat nicht richtige Prüfziffer ' + str(get_pruefziffer(ean))) else: print(str(ean) + ' hat richtige Prüfziffer ') check_ean(EAN1) print('Prüfziffer von ' + str(EAN2) + ' ist ' + str(get_pruefziffer(EAN2)))
Ergebnis:
9783815820860 hat nicht richtige Prüfziffer 5
Prüfziffer von 978381582086 ist 5
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1