[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 > (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 > [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 > [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 > [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 [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.

Recommended Posts

Aus einem Buch, in dem die Gedanken des Programmierers gelernt werden können: Fassen Sie die Teile kleiner Probleme zusammen
Aus einem Buch, das Programmierer lernen können ... (Python): Zeiger
Aus einem Buch, das Programmierer lernen können ... (Python): Über das Sortieren
Aus einem Buch, das Programmierer lernen können (Python): Nachrichten dekodieren
Aus einem Buch, das der Programmierer lernen kann ... (Python): Finden Sie den häufigsten Wert
Aus einem Buch, das Programmierer lernen können ... (Python): Überprüfung von Arrays
Aus einem Buch, das Programmierer lernen können (Python): Statistischer Verarbeitungsabweichungswert
Aus einem Buch, das der Programmierer lernen kann ... (Python): Bedingte Suche (Maximalwert)
Aus einem Buch, das der Programmierer lernen kann ... Überprüfung der Runenprüfsumme (feste Länge)
Aus einem Buch, das Programmierer lernen können (Python): Klassendeklaration (öffentlich / privat usw.)
Aus einem Buch, das der Programmierer lernen kann ... Überprüfung der Runenprüfsumme (variable Länge) Teil 2
Aus einem Buch, das der Programmierer lernen kann ... Konvertieren von Zeichen, die Zahlen darstellen, in einen ganzzahligen Typ
Aus einem Buch, das die Denkweise des Programmierers interessanterweise gelernt hat (Python)
"Ein Buch, das Flask von Grund auf versteht" Memo lesen
Lassen Sie uns ein Kindle-Buch erstellen, das mathematische Formeln aus TeX-Dateien visualisiert
Ich habe einen einfachen Timer erstellt, der vom Terminal aus gestartet werden kann
TensorFlow Aus einer großen Anzahl von Bildern lernen ... (ungelöstes Problem) → 12/18 Gelöst