Как распечатать пронумерованный IP-адрес в Python 3 - PullRequest
1 голос
/ 20 апреля 2020

Пусть, скажем, IP_Addresses - это переменная для IP-адресов.

>>> IP_Addresses = '''
... 1.1.1.1
... 2.2.2.2
... 3.3.3.3
... '''
>>> 

Если я использую перечисленное решение из этого вопроса, я не получу правильные IP-адреса

Как распечатать нумерованный список в Python 3

>>> for number, IP_Address in enumerate(IP_Addresses):
...     print(number, IP_Address)
... 
0 

1 1
2 .
3 1
4 .
5 1
6 .
7 1
8 

9 2
10 .
11 2
12 .
13 2
14 .
15 2
16 

17 3
18 .
19 3
20 .
21 3
22 .
23 3
24 

>>>

Желаемый вывод

1 - 1.1.1.1
2 - 2.2.2.2
3 - 3.3.3.3

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Вы можете разделить переменную на новую строку, например:

IP_Addresses = '''
... 1.1.1.1
... 2.2.2.2
... 3.3.3.3
... '''

i = 0
IP_Addresses = IP_Addresses.split('\n')
for line in IP_Addresses:
    if line and any(char.isdigit() for char in line):
        i += 1
        print(f'{i} - {line}')

Вывод:

1 - ... 1.1.1.1
2 - ... 2.2.2.2
3 - ... 3.3.3.3
1 голос
/ 20 апреля 2020

Вы должны действительно использовать списки вместо длинной строки, создающей переменную IP_Addresses:

IP_Addresses = ["1.1.1.1","2.2.2.2","3.3.3.3"]

Тогда вам не нужно будет разбивать ввод.

Если вы настаиваете на используя длинную строку, затем используйте .split("\n") для разделения на новые строки вместо .

Пример:

for number, IP_Address in enumerate(IP_Addresses.split("\n")):
    print(number, IP_Address)
...