[PYTHON] D'un livre que les pensées du programmeur peuvent être apprises: résumez les parties de petits problèmes
Premiers pas avec la programmation avec Python
Suite de Dernière fois
À la fin de cette question, chaque partie sera assemblée pour devenir la réponse finale.
(Il semble que c'était déjà terminé la dernière fois (transpiration)
Problème: (Première tâche) Vérification de la somme de contrôle des runes h1>
> (Veuillez noter que l'énoncé du problème est dupliqué)
La méthode runique est une méthode souvent utilisée pour vérifier le numéro d'identification. Pour chaque chiffre du numéro d'origine, doublez ce nombre tous les autres chiffres. Après cela, ajoutez les nombres de chaque chiffre (s'il y a un nombre qui double à 2 chiffres, ajoutez le chiffre des dizaines et le chiffre des unités individuellement). Si la somme est divisible par 10, le numéro d'identification est considéré comme valide.
Écrivons un programme qui reçoit un numéro d'identification de n'importe quelle longueur et vérifie si la valeur est valide dans une expression runique. Dans ce programme, après avoir lu un chiffre, le chiffre doit être traité avant de passer au chiffre suivant.
Sachez quel chiffre doubler h2>
> [Réponse](http://qiita.com/teratera/items/503be633b4148824b368)
Comme vous pouvez le voir dans ce commentaire, j'ai utilisé la fonction input () de Python pour tout saisir une fois, calculer la longueur de la chaîne de caractères et dériver les nombres pairs et impairs.
Lorsque le résultat du doublement devient 2 chiffres, chaque chiffre est traité individuellement h1>
> [Réponse](http://qiita.com/teratera/items/6dfa72d6b5d1e987c2df)
(0-9) Le calcul après avoir doublé a été foiré, mais j'ai pu obtenir le nombre que je voulais de 1 + (double nombre% 10).
Sachez que vous avez lu les nombres jusqu'à la fin h2>
> [Réponse](http://qiita.com/teratera/items/a76667d8e6cc23078292)
C'est aussi la réponse au problème. En C ++, il semblait que le code de caractère ASCII était calculé et jugé par le code de saut de ligne, mais dans le cas de Python, la fonction input () semblait juger le saut de ligne, donc ce n'était pas particulièrement difficile.
Lire chaque chiffre individuellement h2>
[Réponse](http://qiita.com/teratera/items/387be64bd9b40971cd38)
Répétez avec la fonction range () et entrez individuellement avec la fonction input ()
(Cependant, la fonction input () peut être entrée sous forme de chaîne de caractères)
D'après ce qui précède, la réponse est la suivante.
#!/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"
・ ・ ・(Résultats terminaux)
Activé ou désactivé lorsque le problème 1762483 est calculé par somme de contrôle
>>> from test03 import number
>>> number()
Enter a number:1762483
Checksum is 30.
Checksum is divisible by 10. Valid .(Efficacité)
S'il est divisible par 10, le résultat est que vous voulez demander «efficace».
Jusqu'à présent, j'ai appris d'innombrables points, mais j'en profiterai pour aborder la tâche suivante.