Erste Schritte mit der Programmierung mit Python Fortsetzung von Letztes Mal
Es scheint, dass die meisten Teile, die ich das letzte Mal gemacht habe, umgeleitet werden. Apropos, was letztes Mal gelöst wurde
・ Beziehen Sie die 6-stellige Identifikationsnummer von der Standardeingabe ・ Fügen Sie die erworbenen 6-stelligen Identifikationsnummern hinzu (im Folgenden als besondere Angelegenheiten bezeichnet). (Multiplizieren Sie von den 6 Ziffern die ungeraden Ziffern mit 2, und wenn das Berechnungsergebnis der Multiplikation 2 Ziffern beträgt, trennen Sie jede Ziffer einzeln. Zusammen addieren)
Hier ist das nächste Problem, aber im Problem von Anfang an ist es "beliebige Anzahl von Ziffern". Es ist nicht immer eine 6-stellige Zahl.
Antwort buchen
char digit;
int checksum = 0;
int position = 1;
cout << "Enter a number with an even number of digits: ";
digit = cin.get();
while(digit != 10) {
if (position % 2 == 1) checksum += digit - '0';###Die ungerade Zahl bleibt gleich
else checksum += doubleDigitValue(digit - '0');###Verdoppeln Sie die gerade Zahl
digit = cin.get();
position++;
}
cout << "Checksum is " << checksum << ". \n";
if (checksum % 10 == 0){
cout << "Checksum is divisible by 10. Valid. \n";
}else{
cout << "Checksum is not divisible by 10. Invalid. \n";
}
・ ・ ・
test02.py
#!/usr/bin/env python
#coding:utf-8
import sys
from ConsoleOut import cout
from test import doubleDigitValue
def number():
checksum = 0
position = 0
cout << "Enter a number with an even number of digits:"
digits = input()
while position < len(digits):
digits = digits[position]
if position % 2 == 1:
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"
・ ・ ・(Ergebnis der Terminalausgabe)
>>> from test02 import number
>>> number()
Enter a number with an even number of digits:49927398716
Checksum is 70.
Checksum is divisible by 10. Valid .
Ich habe darüber nachgedacht, wie ich die ungerade Zahl finden kann, indem ich die Anzahl der eingegebenen Zeichen aufsummiere. Eine sehr einfache und leicht verständliche Methode, bei der Sie das letzte Mal einen Kommentar abgegeben haben Ich habe es benutzt, weil ich unterrichtet wurde.
Versuchen Sie auch, raw_input () zu verwenden, das Sie mir in der Standardeingabe beigebracht haben. Ich habe es versucht, aber weil ich Python3.5 verwendet habe, habe ich einen NameError und einen NameError erhalten. Da es sich auf der Referenzseite befindet, kann sys.stdin.readline () in Python3 verwendet werden Ich habe es versucht, aber es hat nicht funktioniert und der Code ist der gleiche wie beim letzten Mal.
In diesem Artikel "Python-Tipps: Ich möchte eine Zeichenkette aus der Standardeingabe erhalten" sys.stdin. Es gab eine Möglichkeit, readline () zu verwenden.