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,然后去掉 前后的非汉字,再去循环取,代码如下:
str = 'ss192.0.0.12?!289.0.0.1!0.0.0.0!192.163.10.28?192.0.0.5'
str1 = '.' def getIp(str):
'''
返回 字符串中第一个ip以及最后的位置
:param str:
:return: ip、下一个位置
'''
# 获取第一个点的下标
num1 = int(str.index(str1)) #取三位,少于三位的取全部
if num1 >=3:
ip1 = str[num1-3:num1]
else:
ip1 = str[0:num1] #判断第一位数字出现的位置,并获取ip第一数字的下标
if len(ip1)==3:
if ip1[1:2].isdigit():
if ip1[:1].isdigit():
i1 = num1 - 3
else:
i1 = num1 - 2
else:
i1 = num1 - 1
elif len(ip1)==2:
if ip1[:1].isdigit():
i1 = num1 - 2
else:
i1 = num1 - 1
else:
i1 = num1-1 #获取第二、三个点的下标
num2 = int(str.index(str1,num1+1))
num3 = int(str.index(str1, num2 + 1)) ip4 = str[num3+1:num3+4]
# 判断最后一位数字出现的位置,并获取ip第一数字的下标
if ip4[1:2].isdigit():
if ip4[2:].isdigit():
i4 = num3+3
else:
i4 = num3 + 2
else:
i4 = num3 + 1 ip = str[i1:i4+1]
i = i4+1 return ip,i def getAllIp(str):
'''
返回所有ip
:param str:
:return: 返回 str中出现的ip
'''
i = 0
ip = []
while str.count(str1)>=3:
res = getIp(str)
ip.append(res[0])
i = res[1]
str = str[i:] return ip def strLast(str):
'''
根据ip最后一个数字排序
:param str:
:return:
'''
return str[-1:] l1 = getAllIp(str)
l2 = sorted(l1,key=strLast)
print l1
print l2
python练习题(四)的更多相关文章
- Python练习题 001:4个数字求不重复的3位数
听说做练习是掌握一门编程语言的最佳途径,那就争取先做满100道题吧. ----------------------------------------------------------------- ...
- Python练习题 028:求3*3矩阵对角线数字之和
[Python练习题 028] 求一个3*3矩阵对角线元素之和 ----------------------------------------------------- 这题解倒是解出来了,但总觉得 ...
- Python练习题 027:对10个数字进行排序
[Python练习题 027] 对10个数字进行排序 --------------------------------------------- 这题没什么好说的,用 str.split(' ') 获 ...
- Python练习题 026:求100以内的素数
[Python练习题 026] 求100以内的素数. ------------------------------------------------- 奇怪,求解素数的题,之前不是做过了吗?难道是想 ...
- Python练习题 025:判断回文数
[Python练习题 025] 一个5位数,判断它是不是回文数.即12321是回文数,个位与万位相同,十位与千位相同. ---------------------------------------- ...
- Python练习题 024:求位数及逆序打印
[Python练习题 024] 给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. ---------------------------------------------- ...
- Python练习题 004:判断某日期是该年的第几天
[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...
- 简学Python第四章__装饰器、迭代器、列表生成式
Python第四章__装饰器.迭代器 欢迎加入Linux_Python学习群 群号:478616847 目录: 列表生成式 生成器 迭代器 单层装饰器(无参) 多层装饰器(有参) 冒泡算法 代码开发 ...
- Python 基础 四 面向对象杂谈
Python 基础 四 面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...
- 初学Python(四)——set
初学Python(四)——set 初学Python,主要整理一些学习到的知识点,这次是set. # -*- coding:utf-8 -*- #先来看数组和set的差别 d=[1,1,2,3,4,5] ...
随机推荐
- Python怎么去写单元测试用例去测试hello world呢
逛着博客园,看到乙醇大佬的一篇随笔 https://www.cnblogs.com/nbkhic/p/9370446.html,于是就在想怎么测试这句hello world print('hello ...
- UML部署图
部署图与组件图密切相关,部署图是用来描述软件组件部署的硬件组件:而组件图是用来描述组件和显示了它们是如何在硬件中部署. 部署图通常用来帮助理解分布式系统,一个系统模型只有一个部署图. 部署图用于可视化 ...
- 第一个python小脚本
第一个python小实验 前言 作为一个工作1年的linux运维搬砖师来说,发现没点开发能力真的是不好混啊.于是下定决心学习python! 直接上刚写的语句(大神莫鄙视) 通过控制台输入一个账号密码, ...
- 【C语言】学不会的指针
指针 前言: 指针是C语言程序的核心,刚开始学指针,嗯....这样呀,貌似不难呀:之后开始用指针,&p,p,*p,**p,这些指针在用的时候,额.....什么东东?每次都要想半天,特别是遇到双 ...
- Linux 服务器管理建议
Linux 服务器管理建议 一.学习Linux 的注意事项 Linux 严格区分大小写 Linux 一切皆文件 Linux 不靠扩展名区分文件类型 靠权限位标识来确定的 特殊文件要求写扩展名(给管理员 ...
- pytest_03_pycharm运行pytest (转:上海悠悠)
前言 上一篇pytest文档2-用例运行规则已经介绍了如何在cmd执行pytest用例,平常我们写代码在pycharm比较多 写完用例之后,需要调试看看,是不是能正常运行,如果每次跑去cmd执行,太麻 ...
- vue css module
步骤 module <style> -> <style module> class='header' -> :class='$style.header' <t ...
- 【题解】Luogu P5288 [HNOI2019]多边形
原题传送门 HN的题目就是毒瘤 我们有以下猜想: 1.最后所有的线都连到了n号点上 2.最小步数应该为n-3-已经连到n号点的线段数量 本来有些边\((a_i,n)\)会将整个图分割成很多个区间.对于 ...
- 使用Dapper查询记录是否存在
/// <summary> /// Dapper数据访问抽象基础类 /// </summary> public class DapperHelper { public stat ...
- 阿里巴巴 Java 开发手册 (八) 注释规约
1. [强制]类.类属性.类方法的注释必须使用 Javadoc 规范,使用/**内容*/格式,不得使用 //xxx 方式. 说明:在 IDE 编辑窗口中,Javadoc 方式会提示相关注释,生成 Ja ...