Credit - CS50x 2026

解くべき問題

sentimental-creditというフォルダの中のcredit.pyというファイルに、ユーザーにクレジットカード番号の入力を促し、それが有効なAmerican Express、MasterCard、またはVisaのカード番号であるかどうかを(printを介して)報告するプログラムを書いてください。問題セット1で行ったことと全く同じです。今回は、プログラムをPythonで書いてください!

デモ

仕様

  • コードのテストを自動化できるように、プログラムの出力の最終行はAMEX\nMASTERCARD\nVISA\n、またはINVALID\nのいずれかである必要があります。それ以上でもそれ以下でもいけません。
  • 簡単にするため、ユーザーの入力はすべて数字であると仮定してかまいません(つまり、実際のカードに印字されているようなハイフンは含まれません)。
  • これをどのように実装するかに応じて、ユーザーの入力を取得するには、CS50ライブラリのget_intまたはget_stringを使用するのが最適です。

ヒント

  • 正規表現を使用してユーザー入力を検証することが可能です。例えば、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 cs50/problems/2026/x/sentimental/credit

スタイル

style50 credit.py

提出方法

ターミナルで以下を実行して、表示されるプロンプトに答えながら課題を提出してください。

submit50 cs50/problems/2026/x/sentimental/credit