Luhnのアルゴリズムに従って、指定されたクレジットカード番号が有効かどうかを判断するプログラムを実装します。
$ python credit.py
Number: 378282246310005
AMEX
始め方
VS Codeを開きます。
ターミナルウィンドウ内をクリックすることから始めて、それからcdを実行します。
その後プロンプトは次のようになっていることがわかります。
$
ターミナルウィンドウの内側をクリックし、次のように入力します。
wget https://cdn.cs50.net/2021/fall/psets/6/sentimental-credit.zip
その後にEnterを押すと、sentimental-credit.zipというZIPがあなたのCodespaceにダウンロードされます。wgetと次のURLの間にあるスペースや、その他の文字を見落とさないように注意してください。
次に
unzip sentimental-credit.zip
を実行して、sentimental-creditというフォルダを作成します。
ZIPファイルは不要になったため、
rm sentimental-credit.zip
を実行し、プロンプトで “y “に続いてEnterで応答すると、ダウンロードしたZIPファイルが削除されます。
次に
cd sentimental-credit
の後にEnterを押して、そのディレクトリに移動する(つまり、開く)。これでプロンプトは以下のようになります。
sentimental-credit/ $
lsを実行するとcredit.pyが表示されます。問題が発生した場合は、同じ手順をもう一度実行して、どこが間違っていたかを判断できるかどうかを確認してください。
仕様
credit.pyに、クレジットカード番号をユーザに要求し、それが有効なAmerican Express、MasterCard、Visaカード番号のいずれであるかをレポートする (printする) プログラムを作成します。これは問題セット 1とまったく同じですが、今回のプログラムはPythonで作成する必要があります。- コードのテストを自動化できるように、プログラムの出力の最後の行を
AMEX\nまたはMASTERCARD\nまたはVISA\nまたはINVALID\nにしてください。 - 単純化するために、ユーザの入力は完全に数字 (すなわち、実際のカードに印刷されるようなハイフンがない) であると想定することができます。
- CS50のライブラリから
get_intまたはget_stringを使用して、ユーザの入力を取得することをお勧めします。
使い方
プログラムは次の例のように動作するはずです。
$ python credit.py
Number: 378282246310005
AMEX
ヒント
- 正規表現を使用してユーザ入力を検証できます。たとえば、Pythonの
reモジュールを使用して、ユーザの入力が正しい長さの数字のシーケンスであるかどうかをチェックできます。
テスト
この問題についてはcheck50 を使用できますが、次の各項目については、最初に自分でコードをテストすることをお勧めします。
- プログラムを
python credit.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。378282246310005と入力し、Enterキーを押します。プログラムによってAMEXが出力されます。 - プログラムを
python credit.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。371449635398431と入力し、Enterキーを押します。プログラムによってAMEXが出力されます。 - プログラムを
python credit.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。5555555555554444と入力し、Enterキーを押します。プログラムはMASTERCARDを出力するはずです。 - プログラムを
python credit.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。5105105105105100と入力し、Enterキーを押します。プログラムはMASTERCARDを出力するはずです。 - プログラムを
python credit.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。4111111111111111と入力し、Enterキーを押します。プログラムはVISAを出力するはずです。 - プログラムを
python credit.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。4012888888881881と入力し、Enterキーを押します。プログラムはVISAを出力するはずです。 - プログラムを
python credit.pyとして実行し、入力を求めるプロンプトが表示されるのを待ちます。1234567890と入力し、Enterキーを押します。プログラムはINVALIDを出力するはずです。
check50を使用して以下を実行し、コードの正確さを評価してください。ただし、テストは必ず自分で行ってください。
check50 cs50/problems/2022/x/sentimental/credit
以下を実行し、style50を使用してコードのスタイルを評価します。
style50 credit.py
提出方法
ターミナルで、以下のコマンドを実行して提出してください。
submit50 cs50/problems/2022/x/sentimental/credit