Veröffentlichtes Python My Number Verification Module

Es ist ein Modul, das meine Nummer mit pip installierbarem Python überprüft. Wir führen eine Gegenprüfung mit der Ruby-Version und 10.000 Fällen durch. Der Artikel Berechnen meiner Nummernprüfziffer war wunderbar, sodass ich eine Python-Version erstellen konnte, indem ich darauf verwies.

install

install


pip install mynumber

https://pypi.python.org/pypi/mynumber

sample code

install


# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from mynumber import MyNumber

#Meine Nummernüberprüfung
my_number = 123456789018
print MyNumber.validate(my_number)

#Mehr meine Nummernüberprüfung
for my_number in MyNumber.gets(1000):
    assert MyNumber.validate(my_number)

#Immer mehr meine Nummernüberprüfung durch Iterator:Es gibt Doppelarbeit
for my_number in MyNumber():
    assert MyNumber.validate(my_number)

Gesetze und Vorschriften, auf denen

○ Verordnung Nr. 85 des Ministeriums für innere Angelegenheiten und Kommunikation

Artikel 5 Die in der Verordnung des Ministeriums für innere Angelegenheiten und Kommunikation in Artikel 8 der Verordnung festgelegte Formel ist die nachstehend aufgeführte Formel.

Formel

11 - \Bigl( \displaystyle\sum_{n=1}^{11} P_n \times Q_n \Bigr) \% 11 Wenn jedoch $ \ Bigl (\ displaystyle \ sum_ {n = 1} ^ {11} P_n \ times Q_n \ Bigr) % 11 ≤ 1 $ ist, ist dies $ 0 $.

Formelcode

$ Pn $: Die Nummer der $ n $ -Ziffer, wenn die niedrigstwertige Ziffer der elfstelligen Nummer außer der Inspektionsnummer, aus der die persönliche Nummer besteht, die $ 1 $ -Ziffer ist. $ Qn $: $ n + 1 $ wenn $ 1 ≤ n ≤ 6 $, $ n-5 $ wenn $ 7 ≤ n ≤ 11 $

Artikel in Original und Check Digit für meine Nummer berechnen Ich zitierte die Formel von.

Einführung einer anderen Sprachversion

Validiert mit Ruby-Version

Ich habe den Code im Artikel Berechnen Sie meine Zahlenprüfziffer überprüft.

ruby_mynumber_validate.rb


#!/usr/bin/env ruby
def validate_my_number(mynumber)
  #Ganzzahlige Zeichenfolge
  digits = mynumber.to_s.chars.map(&:to_i)
  #Nur 12 Stellen erlaubt
  return false unless digits.length == 12
  #Separate Prüfziffern
  check_digit = digits.pop

  #Überprüfen Sie die verbleibenden Zahlen von der kleinsten
  digits.reverse!

  #Berechnen Sie den Rest, indem Sie die Summe der Zahlen durch 11 teilen
  remainder =  (1..11).inject(0) {|sum, i|
    p = digits[i-1]
    q = (i <= 6) ? i+1 : i-5
    sum + p*q
  } % 11

  case remainder
    when 0,1
      check_digit === 0
    else
      check_digit === (11 - remainder)
  end
end

my_numbers = [
    xxxxx,
    xxxxx,
    xxxxx,
    xxxxx,
]

my_numbers.each do |num|
  r = validate_my_number(num)
  if r == false then
    p num
  end
end




Recommended Posts

Veröffentlichtes Python My Number Verification Module
Mein Numpy (Python)
Mein Pyproj (Python)
Meine Pandas (Python)
Mein str (Python)
Mein Pyautogui (Python)
Mein PySide (Python)
Meine Urllib (Python)
Mein Pyperclip (Python)
[Mein Memo] Python
Python-Sammlungsmodul
Mein ConfigParser (Python)
Mein Webdriver (Python)
Mein Arcpy (Python)
Mein win32gui (Python)
Mein Betriebssystem (Python)
Python-Modul (Python-Lernnotiz ④)
Erstellen Sie ein Python-Modul
Import des Python-Originalmoduls
Meine schöne Suppe (Python)
[Mein Memo] Python -v / Python -V
Python-Tipps (mein Memo)
Primzahl 2 in Python
Mein Python-Datenanalyse-Container
So funktioniert der Import von Python-Modulen
[Python] ModuleNotFoundError: Kein Modul mit dem Namen 'urlparse'
Über das Python-Modul venv
Numpys Zufallsmodul Zufällige Generierung
Automatisches Update des Python-Moduls
Meine Python-Datenanalyseumgebung
Ruby, Installationshandbuch für Python-Module
Python-Debug- und Testmodul
[Python] Memorandum über zufällige Generationen