Erste Schritte mit der Programmierung mit Python Fortsetzung von Letztes Mal
Auch diesmal Problempräsentation davor ・ Wissen Sie, dass Sie die Zahlen bis zum Ende gelesen haben Ich werde das Problem herausfordern, um dies zu lösen.
Wie immer ist es jedoch schwierig, weiterzumachen.
char digit;
int checksum = 0;
cout << "Enter a six-digit number:";
for (int position = 1; position <= 6; position ++) {
cin >> digit;
checksum += digit - '0';
}
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";
}
ConsoleOut.py
#!/usr/bin/env python
#coding:utf-8
#Verwendung von Cout in Python, gelehrt von Shiracamus
from ConsoleOut import cout
def number():
checksum = 0
for i in range(6):
cout << "Enter a six-digit number:"
digit = input()
checksum += int(digit)
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. Invalid. \n"
test01.py(Fügen Sie 6-stellige Eingabenummern hinzu)
###Ich habe es geschrieben, obwohl es nicht so sehr ist, dass ich sagen kann, dass ich es selbst gemacht habe.
#!/usr/bin/env python
#coding:utf-8
from ConsoleOut import cout
def number():
checksum = 0
for i in range(6):
cout << "Enter a six-digit number:"
digit = input()
checksum += int(digit)
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. Invalid. \n"
Die meisten Teile sind bisher durch Ablenkung geschrieben, Das Verständnis von int-Typ, str-Typ, internen Variablen usw. ist immer noch unzureichend, und die erste Prüfsumme + = int (Ziffer) Aus irgendeinem Grund hatte ich Angst, dass sie sich nicht summieren würden. Mit Prüfsumme = 0 deklariert? Wenn Sie dies tun, summieren sie sich. Ich frage mich, ob ich es vorerst schaffen könnte (Schweiß)
test.py(Eine Funktion, die jede Ziffer hinzufügt, wenn die Anzahl der Eingaben 10 oder mehr beträgt)
#!/usr/bin/env python
#coding:utf-8
def doubleDigitValue(digit):
doubledDigit = digit * 2
if (doubledDigit >= 10):
sum = 1 + doubledDigit % 10
else:
sum = doubledDigit
return sum
Und hier ist der vorherige
test.py(DoubleDigitValue-Funktion hinzugefügt)
#!/usr/bin/env python
#coding:utf-8
from ConsoleOut import cout
from test import doubleDigitValue
def number():
checksum = 0
for i in range(6):
cout << "Enter a six-digit number:"
digit = input()
if i % 2 == 0:
checksum += int(digit)
else: #Wenn es sich um eine ungerade Zahl handelt, verdoppeln Sie sie und addieren Sie jede Ziffer, wenn sie 10 oder mehr beträgt.
checksum += doubleDigitValue(int(digit))
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. Invalid. \n"
Ausführungsergebnis
>>> from test01 import number
>>> number()
Enter a six-digit number:1
Enter a six-digit number:1
Enter a six-digit number:1
Enter a six-digit number:1
Enter a six-digit number:1
Enter a six-digit number:1
Checksum is 9.
Checksum is not divisible by 10. Invalid.
>>> number()
Enter a six-digit number:2 #2
Enter a six-digit number:1 #1*2
Enter a six-digit number:1 #1
Enter a six-digit number:1 #1*2
Enter a six-digit number:1 #1
Enter a six-digit number:1 #1*2
Checksum is 10.
Checksum is divisible by 10. Valid .
>>>
#Das Problem ist gelöst worden. Vielen Dank!
Als erstes Ergebnis (1 * 2) + 1 + (1 * 2) + 1 + (1 * 2) +1 = 9 // 1. Mal Wenn das Ergebnis angezeigt wird, scheint es zunächst korrekt zu sein Ich denke, es ist anders, es das zweite Mal einzugeben. (2 * 2) + 1 + (1 * 2) + 1 + (1 * 2) + 1 = 10 ??? // 2. Mal Es ist eine unangemessene Situation, aber lassen Sie uns etwas mehr darüber nachdenken.