码迷,mamicode.com
首页 > 编程语言 > 详细

python练习题(四)

时间:2019-12-06 19:36:21      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:style   last   cli   练习题   hide   res   eve   def   下标   

题目:

根据一个字符串返回一个ip数组,按照ip最后一位排序, 字符串:  

str = ss192.0.0.12?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.5

 

用了一个笨方法,先取一个ip,然后去掉 前后的非汉字,再去循环取,代码如下:

技术图片
 1 str = ss192.0.0.12?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.5
 2 str1 = .
 3 
 4 def getIp(str):
 5     ‘‘‘
 6     返回 字符串中第一个ip以及最后的位置
 7     :param str: 
 8     :return: ip、下一个位置
 9     ‘‘‘
10     # 获取第一个点的下标
11     num1 = int(str.index(str1))
12 
13     #取三位,少于三位的取全部
14     if num1 >=3:
15         ip1 = str[num1-3:num1]
16     else:
17         ip1 = str[0:num1]
18 
19     #判断第一位数字出现的位置,并获取ip第一数字的下标
20     if len(ip1)==3:
21         if ip1[1:2].isdigit():
22             if ip1[:1].isdigit():
23                 i1 = num1 - 3
24             else:
25                 i1 = num1 - 2
26         else:
27             i1 = num1 - 1
28     elif len(ip1)==2:
29         if ip1[:1].isdigit():
30             i1 = num1 - 2
31         else:
32             i1 = num1 - 1
33     else:
34         i1 = num1-1
35 
36     #获取第二、三个点的下标
37     num2 = int(str.index(str1,num1+1))
38     num3 = int(str.index(str1, num2 + 1))
39 
40     ip4 = str[num3+1:num3+4]
41     # 判断最后一位数字出现的位置,并获取ip第一数字的下标
42     if ip4[1:2].isdigit():
43         if ip4[2:].isdigit():
44             i4 = num3+3
45         else:
46             i4 = num3 + 2
47     else:
48         i4 = num3 + 1
49 
50     ip = str[i1:i4+1]
51     i = i4+1
52 
53     return ip,i
54 
55 def getAllIp(str):
56     ‘‘‘
57     返回所有ip
58     :param str: 
59     :return: 返回 str中出现的ip
60     ‘‘‘
61     i = 0
62     ip = []
63     while str.count(str1)>=3:
64         res = getIp(str)
65         ip.append(res[0])
66         i = res[1]
67         str = str[i:]
68 
69     return ip
70 
71 def strLast(str):
72     ‘‘‘
73     根据ip最后一个数字排序
74     :param str: 
75     :return: 
76     ‘‘‘
77     return str[-1:]
78 
79 l1 =  getAllIp(str)
80 l2 = sorted(l1,key=strLast)
81 print l1
82 print l2
View Code

 

python练习题(四)

标签:style   last   cli   练习题   hide   res   eve   def   下标   

原文地址:https://www.cnblogs.com/whycai/p/11996920.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!