Змея / Говнокод #2989 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
from random import randint
import sys
import re


def recupIP():
    s = r"(%s)" % ("\.".join(['(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)']*4))
    patt = re.compile(s)
    fn = "ip.txt"
    s = open(fn).read()
    i = 0
    global permulist
    permulist = []
    global recuplist
    recuplist = []
    while True:
        m = patt.search(s, i)
        if m:
            recuplist.append(m.group(1))          
            i = m.end()+1
        else:
            break
    
#########convertir decimal au binaire###########

def decimalbinaire(string):
    quotient=int(string)
    liste=[]
    global res
    res=""
    
    if quotient==0:
        res="00000000"
    else:
        while quotient!=1:
            liste=liste+[quotient%2]
            quotient=quotient/2
        liste=liste+[1]
        while liste!=[]:
            res=res+str(liste[-1])
            liste=liste[:-1]
        if len(res)<8:
            octet=8-len(res)
            res='0'*octet + res
    return res
recupIP()

z = 0
binip,convert = [],[]
i=0
while i < len(recuplist):
	string = str(recuplist[i])
	string = string.split(".")
	while z < len(string):
		decimalbinaire(string[z])
		binip.append(res)
		z = z + 1
	binip="".join(binip)
        convert.append(binip)
        i=i+1

Насколько я понял из условия того кто это делал - программа должна брать список IP-адресов, конвертить их в бинарный формат и затем, сохраняя формат, создавать новый список.
Реализацию я до конца понять не смог.

Запостил: Nook Nook, (Updated )

Комментарии (7) RSS

  • Странно, почему заминусовали? знатное говнецо
    def recoupIP():
    - все после .read() заменяется на вызов recuplist = patt.finall(s)
    - re.compile не нужен (см. <library>/re.py)
    - global на ровном месте

    def decimalbinaire(string):
    - нахрен там вообще list?
    - if liste!=[]: (вместо if liste:)
    - liste=liste[:-1] (вместо .pop())
    - global на ровном месте

    __main__:
    - while i < len(recuplist): ... i = i+1 - без комментариев

    (автор, похоже, видит python первый раз в жизни)
    Ответить
    • Решение предложенное этому человеку в последствии:
      [".".join(bin(int(t))[2:] for t in line.strip().split(".")) for line in open("filename")]

      И собственно усё.
      Ответить
      • Строго говоря, это решение не эквивалентно исходному говну. Но если формат фаила строго задан - тогда действительно усё
        Ответить
        • Это решение заменяет 90% исходного кода. Сделать проверку на валидность IP-адреса - это ещё несколько строчек.
          Ответить
  • Я красавец! Я так себя люблю! Ммм. Обожаю!
    Ответить

Добавить комментарий

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8