Frage

Ich versuche, die Prüfziffer für eine ISBN-Eingabe in Python zu berechnen.bisher habe ich...

    def ISBN():
        numlist = []
        request = raw_input("Please enter the 10 digit number:  ")
        if len(request) == 10:
            **numlist == request
            print numlist**
        if len(request) != 10:
            print "Invalid Input"
            ISBN()

    ISBN()

Der fettgedruckte Teil ist, wo ich Probleme habe. Ich kann die 10-stellige Eingabe anscheinend nicht in einzelne Zahlen in der Liste (numlist) aufteilen und dann die getrennten einzelnen Zahlen mit 11, dann die nächste mit 10, dann die nächste mit 9 usw. multiplizieren.Für den nächsten Teil des Programms muss ich diese neuen multiplizierten Zahlen in der Liste addieren, dann werde ich die Funktion mod(%) verwenden, um den Rest zu erhalten, und dann die Zahl von 11 subtrahieren, um Hilfe bei meiner Codierung zu erhalten oder falsche Angaben zur Berechnung der ISBN wären sehr dankbar.Danke schön.

War es hilfreich?

Lösung

Dieser Code sollte Sie auf den Weg bringen:

listofnums = [int(digit) for digit in '1234567890']
multipliers = reversed(range(2,12))
multipliednums = [a*b for a,b in zip(listofnums, multipliers)]

Zeichenfolgen sind iterierbar. Wenn Sie sie also iterieren, wird jedes Element als Zeichenfolge mit einem einzelnen Zeichen zurückgegeben.

int Erstellt einen Int aus einem (gültigen) String.

Die Notation [a*b for a,b in zip(listofnums, multipliers)] ist ein Listenverständnis, eine praktische Syntax zum Zuordnen von Sequenzen zu neuen Listen.

Den Rest erfahren Sie in Ihrer Antwort.Beachten Sie, dass reversed gibt einen Generator zurück:Wenn Sie sehen möchten, was „darin“ ist, müssen Sie verwenden tuple oder list seine Bewertung zu erzwingen.Dies kann aus offensichtlichen Gründen für unendliche Generatoren gefährlich sein.

Andere Tipps

Ich glaube, dass list() das ist, wonach Sie suchen.

numlist=list(request)

Hier würde ich den Code schreiben.Ich hoffe, ich interpretiere den Code richtig.

generasacodicetagpre.

generasacodicetagpre.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top