am_dot_com

FP 2022-11-14

Nov 14th, 2022 (edited)
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. # gp_v5.py
  2.  
  3. from random_tools import passwordAleatoria, QUANTOS_SIMBOLOS_POR_DEFEITO
  4.  
  5. import sys
  6. listaDeArgumentosRecebidos = sys.argv
  7.  
  8. def haLetraPequenaEmLista(pL):
  9. enderecos = range(len(pL))
  10. for endereco in enderecos:
  11. letraNoEndereco = pL[endereco]
  12. bLetraPequena =\
  13. letraNoEndereco>="a" and\
  14. letraNoEndereco<="z"
  15. if (bLetraPequena):
  16. return True
  17. # for
  18. return False
  19. # def haLetraPequenaEmLista
  20.  
  21. def haLetraGrandeEmLista(pCol):
  22. for idx in range(len(pCol)):
  23. letra = pCol[idx]
  24. bLG = letra>="A" and letra<="Z"
  25. if bLG:
  26. return True
  27. # if
  28. # for
  29. return False
  30. # def haLetraGrandeEmLista
  31.  
  32. def haDigitoEmLista (pL):
  33. # alt q dispensa conhecer o mecanismo de endereçamento
  34. for elemento in pL:
  35. if elemento>="0" and elemento<="9":
  36. return True
  37. # if
  38. # for
  39. return False
  40. # def haDigitoEmLista
  41.  
  42. # list indexing
  43. """
  44. lista = [1,2,3,4]
  45. print (lista[0:]) # [1, 2, 3, 4]
  46. print (lista[0:1]) # [1] # excluindo o right-address
  47. print (lista[:3]) # [1, 2, 3] # excluindo
  48. """
  49.  
  50. # lógica do programa principal
  51.  
  52. bLP = haLetraPequenaEmLista\
  53. (listaDeArgumentosRecebidos)
  54.  
  55. bLG = haLetraGrandeEmLista\
  56. (listaDeArgumentosRecebidos)
  57.  
  58. if (len(listaDeArgumentosRecebidos)>=3):
  59. iQ = int(listaDeArgumentosRecebidos[1])
  60.  
  61. # python gp_v5.py@0 32@1 3@2 A@3 a@4
  62. bD = haDigitoEmLista\
  63. (listaDeArgumentosRecebidos[2:])
  64.  
  65. bSE = not bLP and not bLG and not bD
  66.  
  67. pwd = passwordAleatoria(
  68. pQuantosSimbolos=iQ,
  69. pbComLetrasGrandes=bLG,
  70. pbComLetrasPequenas=bLP,
  71. pbComDigitos=bD,
  72. pbComSimbolosEspeciais=bSE
  73. )
  74. else:
  75. if(len(listaDeArgumentosRecebidos)==2):
  76. iQ = int(listaDeArgumentosRecebidos[1])
  77. pwd = passwordAleatoria(
  78. pQuantosSimbolos=iQ
  79. )
  80. else:
  81. # chamada SEM argumentos
  82. # interpretação é:
  83. # => aceitar tudo (LP, LG, SE, D), com valores por defeito
  84. strMsg =\
  85. f"Password de {QUANTOS_SIMBOLOS_POR_DEFEITO} símbolos, aceitando LP, LG, D, e SE."
  86. print (strMsg)
  87. pwd = passwordAleatoria()
  88. #if-else
  89. # if
  90.  
  91. print(pwd)
Advertisement
Add Comment
Please, Sign In to add comment