[PYTHON] Aus einem Buch, in dem die Gedanken des Programmierers gelernt werden können: Fassen Sie die Teile kleiner Probleme zusammen
Erste Schritte mit der Programmierung mit Python
Fortsetzung von Letztes Mal
Am Ende dieser Frage wird jeder Teil zusammengestellt, um die endgültige Antwort zu erhalten.
(Es scheint, dass es bereits beim letzten Mal abgeschlossen wurde (Schweiß)
Problem: (Erste Aufgabe) Überprüfung der Runenprüfsumme h1>
> (Bitte beachten Sie, dass die Problembeschreibung doppelt vorhanden ist.)
Die Runenmethode wird häufig zur Überprüfung der Identifikationsnummer verwendet. Verdoppeln Sie für jede Ziffer der ursprünglichen Nummer diese Nummer jede zweite Ziffer. Fügen Sie danach die Zahlen jeder Ziffer hinzu (wenn es eine Zahl gibt, die sich auf zwei Ziffern verdoppelt, fügen Sie die Zehner- und die Einerstelle einzeln hinzu). Wenn die Summe durch 10 teilbar ist, gilt die Identifikationsnummer als gültig.
Schreiben wir ein Programm, das eine Identifikationsnummer beliebiger Länge erhält und prüft, ob der Wert in einem Runenausdruck gültig ist. In diesem Programm muss nach dem Lesen einer Ziffer die Ziffer verarbeitet werden, bevor mit der nächsten Ziffer fortgefahren werden kann.
Wissen, welche Ziffer verdoppelt werden soll h2>
> [Antwort](http://qiita.com/teratera/items/503be633b4148824b368)
Wie Sie in diesem Kommentar sehen können, habe ich die Funktion input () von Python verwendet, um alles einmal einzugeben, die Länge der Zeichenfolge zu berechnen und die geraden und ungeraden Zahlen abzuleiten.
Wenn das Ergebnis der Verdoppelung 2-stellig wird, wird jede Ziffer einzeln behandelt h1>
> [Antwort](http://qiita.com/teratera/items/6dfa72d6b5d1e987c2df)
(0-9) Die Berechnung nach dem Verdoppeln war durcheinander, aber ich konnte die gewünschte Zahl um 1 + erhalten (doppelte Zahl% 10).
Wissen Sie, dass Sie die Zahlen bis zum Ende gelesen haben h2>
> [Antwort](http://qiita.com/teratera/items/a76667d8e6cc23078292)
Dies ist auch die Antwort auf das Problem. In C ++ scheint der ASCII-Zeichencode anhand des Zeilenvorschubcodes berechnet und beurteilt zu werden. Im Fall von Python scheint die Funktion input () den Zeilenvorschub zu beurteilen, sodass dies nicht besonders schwierig war.
Lesen Sie jede Ziffer einzeln h2>
[Antwort](http://qiita.com/teratera/items/387be64bd9b40971cd38)
Wiederholen Sie dies mit der Funktion range () und geben Sie sie einzeln mit der Funktion input () ein
(Die Funktion input () kann jedoch als Zeichenfolge eingegeben werden.)
Aus dem Obigen lautet die Antwort wie folgt.
#!/usr/bin/env python
#coding:utf-8
from ConsoleOut import cout
from test import doubleDigitValue
def number():
checksum = 0
position = 0
cout << "Enter a number:"
digits = input()
while position < len(digits):
digit = digits[position]
if position % 2 == 0:
checksum += int(digit)
else:
checksum += doubleDigitValue(int(digit))
position += 1
cout << "Checksum is " + str(checksum) + ". \n";
if checksum % 10 == 0:
cout << "Checksum is divisible by 10. Valid .\n"
else:
cout << "Checksum is not divisible by 10. Invalud. \n"
・ ・ ・(Terminalergebnisse)
Aktiviert oder deaktiviert, wenn das Problem 1762483 anhand der Prüfsumme berechnet wird
>>> from test03 import number
>>> number()
Enter a number:1762483
Checksum is 30.
Checksum is divisible by 10. Valid .(Wirksamkeit)
Wenn es durch 10 teilbar ist, ist das Ergebnis, dass Sie nach "effektiv" fragen möchten.
Bis zu diesem Punkt habe ich eine Vielzahl von Dingen gelernt, aber ich werde diese nutzen, um die nächste Aufgabe anzugehen.