Credit

要解决的问题

在名为 sentimental-credit 的文件夹中名为 credit.py 的文件中,编写一个程序,提示用户输入信用卡号,然后报告(通过 print)它是否是有效的 American Express、MasterCard 或 Visa 卡号,就像你在问题集 1 中所做的一样。只不过这次你的程序应该用 Python 编写!

演示

规格说明

  • 为了让我们能够自动化测试你的代码,我们要求你的程序的最后一行输出为 AMEX\nMASTERCARD\nVISA\nINVALID\n,不多不少。
  • 为简单起见,你可以假设用户的输入将完全是数字(即不含连字符,就像实际卡片上可能印刷的那样)。
  • 最好使用 CS50 库中的 get_intget_string 来获取用户输入,具体取决于你决定如何实现此题。

提示

  • 可以使用正则表达式来验证用户输入。例如,你可以使用 Python 的 re 模块来检查用户的输入是否确实是正确长度的数字序列。

如何测试

虽然 check50 可以用于此问题,但我们鼓励你先自行针对以下每一项测试你的代码。

  • python credit.py 运行你的程序,等待提示输入。输入 378282246310005 并按回车。你的程序应该输出 AMEX
  • python credit.py 运行你的程序,等待提示输入。输入 371449635398431 并按回车。你的程序应该输出 AMEX
  • python credit.py 运行你的程序,等待提示输入。输入 5555555555554444 并按回车。你的程序应该输出 MASTERCARD
  • python credit.py 运行你的程序,等待提示输入。输入 5105105105105100 并按回车。你的程序应该输出 MASTERCARD
  • python credit.py 运行你的程序,等待提示输入。输入 4111111111111111 并按回车。你的程序应该输出 VISA
  • python credit.py 运行你的程序,等待提示输入。输入 4012888888881881 并按回车。你的程序应该输出 VISA
  • python credit.py 运行你的程序,等待提示输入。输入 1234567890 并按回车。你的程序应该输出 INVALID

正确性

check50 cs50/problems/2026/x/sentimental/credit

代码风格

style50 credit.py

如何提交

在终端中执行以下命令提交你的作业,并按提示完成操作。

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