• python练习题(四)


    题目:

    根据一个字符串返回一个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
  • 相关阅读:
    移动端input中的placeholder属性垂直
    js将文字转化为语音并播放
    js生成二维码
    jquery移除事件,绑定事件,触发事件
    js计算本地时间
    正则判断支付金额
    去除input默认带的上下按钮与修改placeholder的默认颜色、背景、placeholder内容的大小
    rem自适应手机端布局
    Python_PyQt5_库
    Python_用PyQt5 建 notepad 界面
  • 原文地址:https://www.cnblogs.com/whycai/p/11996920.html
Copyright © 2020-2023  润新知