fork(2) download
  1. from sys import stdin
  2.  
  3. n: int = int(stdin.readline())
  4.  
  5. letters = set("abcdefghijklmnopqrstuvwxyz") | set("ABCDEFGHIJKLMOPQRSTUVWXYZ")
  6. numbers = set("0123456789")
  7.  
  8. chars = letters | numbers | set("._")
  9.  
  10. for line in stdin:
  11. if line[-1] == "\n":
  12. line = line[:-1]
  13. email = line
  14.  
  15. """
  16. * zawierać dokładnie jeden znak (@)
  17. """
  18. parts = email.split("@")
  19.  
  20. if len(parts) != 2:
  21. print("Nie")
  22. continue
  23.  
  24. """
  25. * można używać małych lub dużych liter języka łacińskiego, cyfr oraz znaki:
  26. - kropka (.)
  27. - podłoga (_)
  28. """
  29.  
  30. first, temp = parts
  31. tld = temp.split(".")[-1]
  32. scnd = ".".join(temp.split(".")[:-1])
  33.  
  34. if set(first) - chars:
  35. print("Nie")
  36. continue
  37.  
  38. if set(scnd) - chars:
  39. print("Nie")
  40. continue
  41.  
  42. """
  43. * adres e-mail musi mieć format [pierwszy ciąg znaków]@[drugi ciąg znaków].[trzeci ciąg znaków składający się z 2 lub 3 liter] (pierwszy i drugi ciąg znaków musi się składać z n znaków, gdzie n zawiera się w przedziale [1..20],
  44. """
  45.  
  46. """
  47. * [trzeci ciąg znaków składający się z 2 lub 3 liter]
  48. """
  49.  
  50. if len(tld) not in [2, 3]:
  51. print("Nie")
  52. continue
  53.  
  54. if set(tld) - letters:
  55. print("Nie")
  56. continue
  57.  
  58. """
  59. * (pierwszy i drugi ciąg znaków musi się składać z n znaków, gdzie n zawiera się w przedziale [1..20],
  60. """
  61.  
  62. if not (len(first) >= 1 and len(first) <= 20):
  63. print("Nie")
  64. continue
  65.  
  66. if not (len(scnd) >= 1 and len(scnd) <= 20):
  67. print("Nie")
  68. continue
  69.  
  70. """
  71. * w mailu może być wiele znaków kropki i każda musi znajdować się między dwoma znakami różnymi niż znak (.) i (@)
  72. """
  73.  
  74. if not (first[0] != '.' and first[-1] != '.' and '..' not in first):
  75. print("Nie")
  76. continue
  77.  
  78. if not (scnd[0] != '.' and scnd[-1] != '.' and '..' not in scnd):
  79. print("Nie")
  80. continue
  81.  
  82.  
  83. print("Tak")
  84.  
Success #stdin #stdout 0.02s 9184KB
stdin
9
a@123456789012345678901234567890.abc
mat h@edu.pl
algorytm@edu.pl
algoliga@algoliga.edu.pl
1234@123.PL
1234@123..pl
bledny@.mail.pl
.a@b.cd
_@_.__
stdout
Nie
Nie
Tak
Tak
Tak
Nie
Nie
Nie
Nie