2019.12.17霍格沃兹测试学院一道题

代码如下:

 

 1 # coding: utf-8
 2 """
 3 @File:ck01.py    
 4 @E-mail:chenshengkai@vip.qq.com
 5 @Time:2019-12-17 8:31 
 6 @Author:Nobita   
 7 @Version:1.0   
 8 @Desciption:None
 9 """
10 
11 import re
12 
13 #题目:要求返回一个ip数组,并且按照ip最后一位排序返回
14 string = "192.0.0.1?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.1"
15 '''
16 思路分析:
17 1.首先去除特殊符号后返回一个列表str_list
18 2.判断列表里的每个元素是否符合ip的格式,不符合去除
19 3.得到满足ip格式的新列表new_list,按照ip最后一位排序返回result
20 '''
21 
22 str_list = re.split('\?!|!|\?', string)
23 '''通过正则去除特殊符号,返回str_list'''
24 new_list = []
25 for ip in str_list:
26     ip_list = ip.split('.')
27     if len(ip_list) == 4:
28         for i in ip_list:
29             if eval(i) > 255 or eval(i) < 0:
30                 break
31         else:
32             new_list.append(ip)
33 '''
34 思路分析:
35 1.遍历列表str_list,判断ip是否为X.X.X.X格式。
36 2.满足ip格式,再判断里面的数值是否在0-255之间。
37 3.均满足则追加这个ip到新的列表new_list中。
38 '''
39 
40 result = sorted(new_list, key=lambda x: x[-1])
41 '''对列表net_list按照ip最后一位数字进行排序'''
42 print(result)
posted @ 2019-12-17 09:07  charseki  阅读(248)  评论(0编辑  收藏  举报