Grundrisse von Python!!
Danke!
Zuletzt geändert von Walker26 am Sonntag 19. September 2004, 19:09, insgesamt 1-mal geändert.
Hi. Ich schreib es am besten mal in zwei Varianten auf, damit du es anhand deines Vorgehens vergleichen kannst und siehst, wie man es in Python anders machen kann.
Also hier ist die kommentierte ausführliche Version:
So, und jetzt die Kurzvariante:
Sollte ich noch klarheiten gelassen haben (
), bitte schreiben
.
mfg Milan
Also hier ist die kommentierte ausführliche Version:
Code: Alles auswählen
isbn=raw_input("ISBN eingeben: ") #1. Eingabe
#2. verarbeitung
for i in xrange(len(isbn)):
position_strich=isbn.find("-") # Position eines Striches ermitteln...
if position_strich != -1: # ...falls ein Strich existiert
isbn=isbn[:position_strich]+isbn[postiotion_strich+1:]
# alle Striche raus, bilden der Prüfsumme
psum=0
for i in xrange(10):
if isbn[i] in ("X","x"): #Ein X kann nicht direkt in eine Zahl umgewandelt werden
stelle=10
else:
stelle=int(isbn[i])
# stelle enthält nun den numerischen Wert der i. ten Stelle in der isbn
# wobei Python mit 0 anfängt zu zählen
psum+=stelle*(i+1) # deswegen muss mit i+1 multipliziert werden
# fertig, überprüfen der Prüfsumme (3.)
if (psum % 11) != 0:
print "Falsch"
else:
print "richtig"
Code: Alles auswählen
isbn=raw_input("ISBN eingeben: ") #1. Eingabe
isbn=isbn.replace("-","") #Entfehrnen der Striche
# Wenn man überlegt, kann man auch prüfen, ob die Prüfsumme der 1. bis 9. Stelle
# gleich der 10. Stelle der ISBN ist. Das ist leichter zu berechnen.
#2.: Berechnung der Prüfsumme von den ersten 9 Stellen
psum=sum([(i+1)*int(a) for (i,a) in enumerate(isbn[:9])]) % 11
#überprüfen dieser Summe:
# links: berechnete 10. Stelle; rechts: tatsächliche 10. Stelle
if "0123456789x"[psum] == isbn[9].lower():
print "richtig"
else:
print "falsch"


mfg Milan
DANKE an alle dir mir jetzt geholfen haben, supuer super dankeschön!!!!
Wenn ich euch kennen würde, würdet ihr jeder 2-4 bierchen kriegen!!!!ich kann mich garnicht oft genug bedanken
Wenn ich euch kennen würde, würdet ihr jeder 2-4 bierchen kriegen!!!!ich kann mich garnicht oft genug bedanken