Python :: Aufgabe #256 :: Lösung #4
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ß
#4
von Des_ORNTRT (530 Punkte)
- 07.04.2020 um 21:10 Uhr
print("EAN-Prüfziffer berechnen oder überprüfen?")
print("a für berechnen , b für überprüfen")
wahl = input().lower()
if wahl == "a":
print("Geben sie die ersten 12 Ziffern der EAN-Nummer ein:")
eanNummer: str = input()
x = 0
j = 0
l = 0
for i in range(1, 13):
if i % 2 == 0:
x = x + (int(eanNummer[j]) * 3)
j += 1
else:
x = x + int(eanNummer[j])
j += 1
while x % 10 != 0:
x += 1
l += 1
print("Die Prüfziffer lautet " + str(l))
if wahl == "b":
print("Geben sie die EAN-Nummer ein:")
eanNummer: str = input()
x = 0
j = 0
l = 0
for i in range(1, 13):
if i % 2 == 0:
x = x + (int(eanNummer[j]) * 3)
j += 1
else:
x = x + int(eanNummer[j])
j += 1
while x % 10 != 0:
x += 1
l += 1
if str(l) == eanNummer[12]:
print("Die Prüfziffer ist korrekt.")
else:
print("Die Prüfziffer ist nicht korrekt.")
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
