Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cea9f77

Browse files
Making formatted CPFs
1 parent 84ef423 commit cea9f77

File tree

1 file changed

+20
-13
lines changed

1 file changed

+20
-13
lines changed

‎Problem Solving Scripts/CPF_Generator.py

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -40,33 +40,40 @@ def __init__(self):
4040
"""
4141
self.generateCPF()
4242

43+
def getDigits(cpf):
44+
lenQty = len(cpf) + 1
45+
for cpfIndex, multiplyNum in enumerate(range(lenQty, 1)):
46+
cpf = cpf + str(multiplyNum * int(cpf[cpfIndex]))
47+
return int(cpf) % 11
48+
49+
def getDigitOne(cpf: str) -> int:
50+
return CPF_GEN.getDigits(cpf[:9])
51+
52+
def getDigitTwo(cpf: str) -> int:
53+
return CPF_GEN.getDigits(cpf[:10])
54+
4355
@staticmethod
4456
def generateCPF():
4557
"""
4658
This function is used to generate the CPF.
4759
"""
4860

4961
# Start with random sequence between 0 and 9
50-
cpf = [random.randrange(10) for _ in range(9)]
51-
52-
for _ in range(2):
53-
for i, v in enumerate(cpf):
54-
res = (len(cpf) + 1 - i) * v
55-
56-
if res > 9:
57-
res = 0
58-
else:
59-
res = 11 - res
62+
nineDigits= "".join([str(random.randint(0, 9)) for x in range(9)])
63+
digitOne = CPF_GEN.getDigitOne(nineDigits)
64+
digitTwo = CPF_GEN.getDigitTwo(f"{nineDigits}{digitOne}")
65+
genCPF = f"{nineDigits}{digitOne}{digitTwo}"
6066

61-
cpf.append(res)
67+
formatGenCPF = f"{genCPF[0:3]}.{genCPF[3:6]}.{genCPF[6:9]}-{genCPF[9:11]}"
68+
logThis(f"Test formatted: {formatGenCPF}")
6269

63-
return "".join(str(x) forxincpf)
70+
return formatGenCPF
6471

6572
def checkCPF():
6673
if debugMode:
6774
forceCPF = "113.314.390-35"
6875

69-
if isThisValid.validateCPF(str(CPF_GEN.generateCPF())) != True:
76+
while isThisValid.validateCPF(str(CPF_GEN.generateCPF())) != True:
7077
CPF_GEN.generateCPF()
7178
logThis("CPF is invalid, generating another one...")
7279
# logThis(f"Test Import: {isThisValid.validateCPF(str(CPF_GEN.generateCPF()))}")

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /