Форум сайта python.su
0
Добрый день. Для школьного проекта я должен сделать программу которая может решать 12 задание из егэ по информатике. На данном этапе мне нужно c помощью индексов списка объеденить числа списков не затрагивая точки, но так как IP-адреса могут быть разные положение точек в списках нельзя предугадывать. Поэтому я сделал второй список. который после ввода со стороны пользователя заполняется индексами точек и с помощью метода join я пытался объеденить числа отталкиваясь от того что знаю расположение точек но что-то пошло не так. Программа объеденяет не то, а иногда просто удаляет несколько элементов списка. Прошу найти ошибку.
Отредактировано cudaplic (Июль 12, 2020 17:46:22)
Прикреплённый файлы:
ege12.py (1,1 KБ)
Офлайн
73
cudaplicможно не гадать а получать
IP-адреса могут быть разные положение точек в списках нельзя предугадывать
def index_points(data): return [ i for i,x in enumerate(data) if x =='.'] def filter_points(data, points): return ''.join([x for i,x in enumerate(data) if i not in points]) a = '192.168.1.11' points = index_points(a) print(filter_points(a, points))
Офлайн
857
cudaplicНапиши задание точно.
Для школьного проекта я должен сделать программу которая может решать 12 задание из егэ по информатике.
Офлайн
0
py.user.nextВ задании даётся два IP-адреса: маска и IP-адрес компьютера. После этого в задании пишут что нужно узнать: подсеть или номер компьютера в этой подсети. Для этого данные адреса нужно перевести в 2-ю систему счисления (числа разделённые точками независимо друг от друга, после перевода точки убрать) и получится 32 значные адреса состоящие только из 1 и 0, 1 в маске будут показывать какие числа в адресе отвечают за адрес подсети, а 0 за номер компьютера в ней. Например: 11111111110000000000000000000000-маска 10011101011000110101100110010110-адрес компьютера
Отредактировано cudaplic (Июль 13, 2020 06:45:03)
Офлайн
73
так?
def binary(num): number = int(num) result = '' while number: result = str(number % 2) + result number = number // 2 return result adress = '255.255.255.123' print(''.join(map(binary, adress.split('.'))))
Офлайн
857
cudaplicТы так пишешь, как будто пересказываешь задание своими словами. А точно написать задание означает переписать точно то, что написано в задании. Мало кто здесь к ЕГЭ и школьной информатике имеет отношение. Всё это мало относится к программированию на профессиональном уровне. Многие здесь могут вообще не знать, что такое ЕГЭ, так как только в России экзамен такой есть.
В задании даётся два IP-адреса: маска и IP-адрес компьютера. После этого в задании пишут что нужно узнать: подсеть или номер компьютера в этой подсети.
Отредактировано py.user.next (Июль 14, 2020 01:39:09)
Офлайн
0
marvellikБольшое спасибо, то что нужно.
так?
Офлайн