模块:本质就是.py结尾的文件。从逻辑上组织python代码。

包: 本质就是一个目录,带有__init__.py文件,从逻辑上组织模块。

模块的分类:

      1.标准库(内置的模块)

      2.开源库(第三方库)

      3.自定义模块

模块导入方法:

    1.import + 模块名

    2.from......import......

    导入模块的本质,就是把被导入的.py文件解释执行一遍

    导入包的本质,就是把__init__.py文件解释执行一遍。

1.时间模块(time与datetime)

    1.timestamp(时间戳) 2.format_time(字符串时间)  3.struct_time(结构化时间)

    

 import time
print(time.asctime()) #接受一个元组转化为固定形式的字符串时间Thu Jan 10 18:33:34 2019
print(time.altzone) #计算与utc时间相差的秒数
print(time.ctime()) #接受一个时间戳,转化为固定形式的字符串时间Thu Jan 10 18:33:34 2019
print(time.gmtime()) #将时间戳形式时间转化为结构化时间 utc时间
print(time.localtime()) #将时间戳形式时间转化为结构化时间 当地时间
print(time.mktime()) #将结构化时间转化为时间戳形式时间
print(time.strftime("%Y-%m-%d %H:%M:%S","结构化时间"))#将结构化时间转化为字符串时间
print(time.strptime("2016-12-10 10:12:13","%Y-%m-%d %H:%M:%S"))#将字符串时间转化为结构化时间
print(time.sleep()) #延长时间
   时间的转化

  

   

 import datetime
import time
print(datetime.datetime.now()) #现在的时间 固定格式
print(datetime.date.fromtimestamp(time.time())) #把时间戳转化为 2019-1-10
print(datetime.datetime.now()+datetime.timedelta(hours=+3))#当前时间加3小时,
print(datetime.datetime.now()+datetime.timedelta(days=-3))#当前时间减3天
print(datetime.datetime.now().replace(month=2,day=3)) #时间替换

2.随机模块(random)

  

 import random
print(random.choice([1,2,3])) #列表中随机选择一个数
print(random.random()) #(0,1)随机浮点数
print(random.randint(1,3)) #[1,3]之间的随机整数
print(random.randrange(1,3) #(1,3)之间随机整数
print(random.seed(20)) #产生随机种子
print(random.sample(range(10),3)) #从(0,9)之间随机抽取3个数
l = [1,2,3]
random.shuffle(l) #随机打乱
print(l)
print(random.uniform(1,3)) #(1,3)之间随机浮点数
 #随机生成验证码
import random
def check_code(num):
codes = ""
for i in range(num):
number = random.randint(0,9)
alpha = chr(random.randint(97,122))
code = random.choice([number,alpha])
codes += str(code)
return codes
l = check_code(5)
print(l)
 import sys
print(sys.path) #返回当前模块的搜索路径
print(sys.argv) #命令行参数 ,第一个参数为文件本身路径
# sys.exit() #退出程序,正常退出exit()
print(sys.platform) #返回操作平台名称
print(sys.version) #返回Python 版本

2.os模块

    

 import os
print(os.getcwd()) #当前文件目录
os.mkdir("") #创建11目录
os.makedirs("11/22" ) #创建多级目录
print(os.listdir("G:\Echizen\PycharmProjects\one\learn3")) #列表形式列出该目录下的所有文件或子目录
os.rename("11/22",'11/33') #目录重命名
os.removedirs("11/33") #删除多级目录
print(os.stat("G:\Echizen\PycharmProjects\one\learn3\day1.py")) #获取文件目录信息
print(os.environ) #获得文件环境
print(os.path.abspath("G:\Echizen\PycharmProjects\one\learn3\day1.py")) #获取文件绝对路径
print(os.path.split("G:\Echizen\PycharmProjects\one\learn3\day1.py")) #将路径分割成目录和文件,以元组返回
print(os.path.dirname("G:\Echizen\PycharmProjects\one\learn3\day1.py"))#获得路径目录名,即split分割后的第一个
print(os.path.basename("G:\Echizen\PycharmProjects\one\learn3\day1.py"))#获得路径文件,即split后的第二个
print(os.path.exists("G:\Echizen\PycharmProjects\one\learn3\day1.py")) #判断是否存在该文件
print(os.path.isabs("G:\Echizen\PycharmProjects\one\learn3\day1.py")) #判断是否为绝对路径
print(os.path.isfile("G:\Echizen\PycharmProjects\one\learn3\day1.py")) #判断是否是一个文件
print(os.path.isdir("G:\Echizen\PycharmProjects\one\learn3"))#判断是否为一个目录
print(os.path.join("G:\Echizen\PycharmProjects\one\learn3","day3")) #连接
print(os.path.getatime("G:\Echizen\PycharmProjects\one\learn3\day2.py")) #获得文件或目录最后存储时间
print(os.path.getmtime("G:\Echizen\PycharmProjects\one\learn3\day2.py")
#不同包之间的导入操作
import sys,os
print(sys.path)
x = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(x)
print(sys.path)
import ML

3.re模块

  

  '.'     默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
  '^'     匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)
  '$'     匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以
  '*'     匹配*号前的字符0次或多次,re.findall("ab*","cabb3abcbbac")  结果为['abb', 'ab', 'a']
  '+'     匹配前一个字符1次或多次,re.findall("ab+","ab+cd+abb+bba") 结果['ab', 'abb']
  '?'     匹配前一个字符1次或0
  '{m}'   匹配前一个字符m次
  '{n,m}' 匹配前一个字符n到m次,re.findall("ab{1,3}","abb abc abbcbbb") 结果'abb', 'ab', 'abb']
  '|'     匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group() 结果'ABC'
  '(...)' 分组匹配,re.search("(abc){2}a(123|456)c", "abcabca456c").group() 结果 abcabca456c
 
 
  '\A'    只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的
  '\Z'    匹配字符结尾,同$
  '\d'    匹配数字0-9
  '\D'    匹配非数字
  '\w'    匹配[A-Za-z0-9]
  '\W'    匹配非[A-Za-z0-9]
  's'     匹配空白字符、\t、\n、\r , re.search("\s+","ab\tc1\n3").group() 结果 '\t'
  re.match 从头开始匹配
  re.search 匹配包含
  re.findall 把所有匹配到的字符放到以列表中的元素返回
  re.splitall 以匹配到的字符当做列表分隔符
  re.sub      匹配字符并替换

  

print(re.search("(?P<name>[a-z]{3})(?P<age>[0-9]{2})(?P<sex>[a-z]{3})","zqq24boy"))

    

我的Python分析成长之路6的更多相关文章

  1. 我的Python分析成长之路7

    类 一.编程范式: 1.函数式编程   def 2.面向过程编程   (Procedural Programming) 基本设计思路就是程序一开始是要着手解决一个大的问题,然后把一个大问题分解成很多个 ...

  2. 我的Python分析成长之路10

    matplot数据可视化基础 制作提供信息的可视化(有时称作绘图)是数据分析中最重要任务之一. 1.图片(画布)与子图 plt.figure :创建一张空白的图片,可以指定图片的大小.像素. figu ...

  3. 我的Python分析成长之路8

    Numpy数值计算基础 Numpy:是Numerical Python的简称,它是目前Python数值计算中最为基础的工具包,Numpy是用于数值科学计算的基础模块,不但能够完成科学计算的任而且能够用 ...

  4. 我的Python分析成长之路11

    数据预处理 如何对数据进行预处理,提高数据质量,是数据分析中重要的问题. 1.数据合并 堆叠合并数据,堆叠就是简单地把两个表拼在一起,也被称为轴向链接,绑定或连接.依照轴的方向,数据堆叠可分为横向堆叠 ...

  5. 我的Python分析成长之路2

    2018-12-29 一.python数据类型: 1.数字 int(整形) float(浮点型) complex(复数型) 2.布尔值(bool)     真或假 True or False 3.字符 ...

  6. 我的Python分析成长之路1

    Python是什么?                                                                                           ...

  7. 我的Python分析成长之路9

    pandas入门 统计分析是数据分析的重要组成部分,它几乎贯穿整个数据分析的流程.运用统计方法,将定量与定性结合,进行的研究活动叫做统计分析.而pandas是统计分析的重要库. 1.pandas数据结 ...

  8. 我的Python分析成长之路5

    一.装饰器: 本质是函数,装饰其他函数,为其他函数添加附加功能. 原则: 1.不能修改被装饰函数的源代码. 2.不能修改被装饰函数的调用方式. 装饰器用到的知识: 1.函数即变量   (把函数体赋值给 ...

  9. 我的Python分析成长之路4

    一.函数 1.什么是函数?:函数是带名字的代码块,调用函数,只要调用函数名就可以.    2.函数的性质:1.减少重复代码 2.使程序变得可扩展 3.使程序变得易维护 3.编程范示: 1.面向对象编程 ...

随机推荐

  1. Codeforces Round 56-C. Mishka and the Last Exam(思维+贪心)

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  2. jeesite框架搭建中mysql数据库导入问题

    在进行mysql8.0的安装配置时,可以说是道路坎坷,之前介绍了如何安装配置mysql8.0,虽然mysql在正常情况下是很容易安装的,但是如果遇到特殊情况的时候那就需要特殊的处理. 这次我遇到的问题 ...

  3. 洛谷-P3927 SAC E#1 - 一道中档题 Factorial

    原址 题目背景 数据已修改 SOL君(炉石主播)和SOL菌(完美信息教室讲师)是好朋友. 题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. ...

  4. AnyCAD OpenSource 版本下载和编译

    下载: SVN下载地址:https://anycad.svn.codeplex.com/svn 或者直接下载:http://anycad.codeplex.com/SourceControl/late ...

  5. 《超实用的Node.js代码段》连载二:正确拼接Buffer

    对于初学Node.js框架的开发人员来说,可能认为Buffer模块比较易学.重要性也不是那么突出.其实,Buffer模块在文件I/O和网络I/O中应用非常广泛,其处理二进制的性能比普通字符串性能要高出 ...

  6. 大家一起和snailren学java-(一)对象导论

    OOP,是java语言的特性.面向对象思想贯穿整个java开发. 那什么是面向对象呢?什么是对象? 在面向对象设计语言看来,万事万物都为对象.生活中的一个物体,有自己的属性,有自己的活动.比如一辆汽车 ...

  7. C#调用SAP S4/HANA Gateway Service

    公司使用SAP,并且实施公司做了一些提供报表数据的接口供调用,首先说明一下我对SAP不熟悉 但SAP用到的接口信息提供大家参考一下,这些Gateway Service使用的是DCP方式写的,SAP提供 ...

  8. 安装指定版本的minikube

    Minikube是什么? Kubernetes集群的安装和部署对于很多初学者来说是一道坎.为了方便大家开发和体验Kubernetes,Kubernetes开源社区提供了可以在本地部署的Minikube ...

  9. 使用代码获得Netweaver里某个software component和C4C的版本

    有同事问如何通过代码的方式获得Netweaver里某个Software component的版本信息,以及Cloud for Customer(C4C)的版本信息. Netweaver 点了Detai ...

  10. python_96_类的继承1

    #面向对象3大特性:封装,多态,继承 # 继承可节省内存,减少代码 class People(): def __init__(self,name,age): self.Name=name self.A ...