博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python 学习日记5
阅读量:6305 次
发布时间:2019-06-22

本文共 3146 字,大约阅读时间需要 10 分钟。

一,递归函数 

1 #在列表l中,想要找到其中一个值,二分法可以大大节省查询时间 2 l=[2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76,82,83,88] 3     #如果想找到66 的位置,而又不让使用index(66) 4 def search(num,l,start=None,end=None): 5     start = start if start else 0 6     end = end if end is None else len(l) - 1 7     mid = (end - start)//2 + start 8     if start > end: 9         return None10     elif l[mid] > num :11         return search(num,l,start,mid-1)12     elif l[mid] < num:13         return search(num,l,mid+1,end)14     elif l[mid] == num:15         return mid16 17 18 #二分法只能查找有序的数列
二分法查找
menu = {    '北京': {        '海淀': {            '五道口': {                'soho': {},                '网易': {},                'google': {}            },            '中关村': {                '爱奇艺': {},                '汽车之家': {},                'youku': {},            },            '上地': {                '百度': {},            },        },        '昌平': {            '沙河': {                '老男孩': {},                '北航': {},            },            '天通苑': {},            '回龙观': {},        },        '朝阳': {},        '东城': {},    },    '上海': {        '闵行': {            "人民广场": {                '炸鸡店': {}            }        },        '闸北': {            '火车战': {                '携程': {}            }        },        '浦东': {},    },    '山东': {},}menu
三级菜单
def threeLM(dic):    while True:        for k in dic:print(k)        key = input('input>>').strip()        if key == 'b' or key == 'q':return key        elif key in dic.keys() and dic[key]:            ret = threeLM(dic[key])            if ret == 'q': return 'q'threeLM(menu)递归函数实现三级菜单
使用递归函数

二,模块

概念:一个模块就是包含了python定义和声明的文件

常用模块,分为四个通用类别: 

  1 使用python编写的代码(.py文件)

  2 已被编译为共享库或DLL的C或C++扩展

  3 包好一组模块的包

  4 使用C编写并链接到python解释器的内置模块

在内置数据类型(dict、list、set、tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter、deque、defaultdict、namedtuple和OrderedDict等。

  1.namedtuple: 生成可以使用名字来访问元素内容的tuple

  2.deque: 双端队列,可以快速的从另外一侧追加和推出对象

  3.Counter: 计数器,主要用来计数

  4.OrderedDict: 有序字典

  5.defaultdict: 带有默认值的字典

三,时间模块

  

表示时间的三种方式

在Python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:

  1 时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

  2 格式化的时间字符串(Format String): ‘1999-12-06’

%y 两位数的年份表示(00-99)%Y 四位数的年份表示(000-9999)%m 月份(01-12)%d 月内中的一天(0-31)%H 24小时制小时数(0-23)%I 12小时制小时数(01-12)%M 分钟数(00=59)%S 秒(00-59)
常用时间表示

  3 元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

格式之间的转化

四,random模块

import randomdef v_code():    code = ''    for i in range(5):        num=random.randint(0,9)        alf=chr(random.randint(65,90))        add=random.choice([num,alf])        code="".join([code,str(add)])    return codeprint(v_code())
生成随机数列

  os模块是与操作系统交互的一个接口

  sys模块是与python解释器交互的一个接口

五,re模块

  在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示  字符分为很多类,比如数字、字母、标点等等。

 贪婪匹配:在满足匹配时,匹配尽可能长的字符串,默认情况下,采用贪婪匹配

 

. 是任意字符* 是取 0 至 无限长度? 是非贪婪模式。何在一起就是 取尽量少的任意字符,一般不会这么单独写,他大多用在:.*?x就是取前面任意长度的字符,直到一个x出现

 

^((https|http|ftp|rtsp|mms)?:\/\/)[^\s]+    网址URL\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}   邮箱\d{
17}[\d|x]|\d{15} 身份证号[A-Za-z0-9_\-\u4e00-\u9fa5]+ 用户名
正则测试

 

转载于:https://www.cnblogs.com/AQQB/p/9026947.html

你可能感兴趣的文章
mysql dba系统学习(20)mysql存储引擎MyISAM
查看>>
centos 5.5 64 php imagick 模块错误处理记录
查看>>
apache中文url日志分析--php十六进制字符串转换
查看>>
Ansible--playbook介绍
查看>>
浅谈代理
查看>>
php创建桌面快捷方式实现方法
查看>>
基于jquery实现的超酷动画源码
查看>>
fl包下的TransitionManager的使用
查看>>
Factorialize a Number
查看>>
[USB-Blaster] Error (209040): Can't access JTAG chain
查看>>
TreeSet的用法
查看>>
防HTTP慢速攻击的nginx安全配置
查看>>
深入理解PHP内核(十四)类的成员变量及方法
查看>>
Spring Boot2.0+中,自定义配置类扩展springMVC的功能
查看>>
参与博客编辑器改版,我的礼物 感谢51cto
查看>>
JavaWeb笔记——JSTL标签
查看>>
Eclipse插件大全 挑选最牛的TOP30
查看>>
一些实用性的总结与纠正
查看>>
Kubernetes概念
查看>>
逻辑卷管理器(LVM)
查看>>