Python
 Computer >> コンピューター >  >> プログラミング >> Python

クレジットカード番号をチェックするPythonプログラムが有効かどうか


クレジットカード番号があるとします。カード番号が有効かどうかを確認する必要があります。カード番号には特定のプロパティがあります-

  • 4、5、6から始まります

  • 16桁の長さになります

  • 数字には数字のみを含める必要があります

  • '-'

    で区切られた4つのグループの数字が含まれる場合があります
  • スペースやアンダースコアなどの他の区切り文字は使用しないでください

  • 同じ数字が4桁以上連続していてはいけません

したがって、入力がs ="5423-2578-8632-6589"のような場合、出力はTrueになります

これを解決するには、次の手順に従います-

  • sの'-'の数が0より大きい場合、
    • a:=「-」で区切られたパーツのリスト
    • p:=1
    • aのサイズが4と同じでない場合、
      • p:=null
      • a:=空白のリスト
    • aの各bについて、
      • bのサイズが4と同じでない場合、
        • p:=null
        • ループから抜け出す
  • それ以外の場合、
    • p:=4、5、または6で始まり、残りが15桁の数字である部分文字列を検索します
    • s:=sから「-」を削除
    • q:=4つ以上の連続する文字が同じである部分文字列を検索
    • pがnullでなく、qがnullの場合、
      • Trueを返す
    • それ以外の場合、
      • Falseを返す

理解を深めるために、次の実装を見てみましょう

import re

def solve(s):
   if s.count("-")>0:
      a = s.split("-")
      p=1
      if len(a)!=4:
         p=None
         a=[]
      for b in a:
         if len(b)!=4:
            p=None
            break
         else:
            p = re.search("[456][0-9]{15}",s)
         s = s.replace("-","")
         q = re.search(".*([0-9])\\1{3}.*",s)

         if p!=None and q==None:
            return True
         else:
            return False

s = "5423-2578-8632-6589"
print(solve(s))

入力

"5423-2578-8632-6589"

出力

False

  1. 素数をチェックするPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数が与えられているので、与えられた数が素数であるかどうかを確認する必要があります。 1より大きい特定の正の数で、1以外の要素はなく、その数自体は素数と呼ばれます。 2、3、5、7などは他の要素がないため素数です。 以下のこのプログラムでは、素数または非素数の性質について番号がチェックされます。 1以下の数は素数とは言えません。したがって、数値が1より大きい場合にのみ反復します。 ここで、その数が2から(num-1 // 2)の範囲の任意の数で正確に割り切れるかどうかを確認します。指定された範囲内に何ら

  2. アームストロング数をチェックするPythonプログラム

    この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 整数nが与えられた場合、与えられた整数がアームストロング数であることを確認する必要があります。 正の整数は、次の場合、n次のアームストロング数と呼ばれます abcd... = a^n + b^n + c^n + d^n + … ここでは、3桁のアームストロング数、つまり3桁のブルートフォースアプローチについて説明します。 オーダーnのアームストロング番号を確認するには、3を行番号7の対応するオーダー値に置き換える必要があります。 それでは、実装を見てみましょう- 例