12月20

一、复习

1.函数(重点)

1)封装打包,需要对应代码功能可直接调用

2)单纯的分块分类函数用处

def 函数名(形参列表):

​ 函数说明文档

​ 函数体

调用函数:

函数名(实参列表)

定义函数不会执行函数体,调用的时候才会执行

实参列表 — 位置参数、关键字参数

参数

返回值—获取函数调用表达式的值

函数名=lambda 形参列表:返回值

系统实参高阶函数的用法:max,min,sorted,列表.sort;map

2.模块

命名一定要符合变量名的要求

import test

test.x

from test import x

x

3.异常

try:

​ 代码段1

except异常类型:

代码段2

二、os模块介绍

1.os模块 — 用来提供文件和文件夹相关操作的模块

1)os.getcwd() — 获取当前目录

open(os.getcwd()+’/test.py’)

2)os. listdir(文件夹路径) — 获取指定文件夹下所有的文件和文件夹的名字

3)创建文件夹 — mkdir、makedirs

os.mkdir(’./dirs’)

4)返回文件名 os.pathbasename(文件路径) — 返回文件名

result=os.path.basename(’./files/filel.txt’)

print(result)

5)os.path.exist(文件/文件夹路径) — 判断指定文件或者文件夹是否存在

存在是‘True’,不存在为’False’

6)os.path.splitext(文件路径) — 文件名和后缀分离

print(os.path.splitext(‘files/file1.txt’))

三、数学模块和随机模块

1.数学模块

import math,cmath

*math是普通的数学模块 #这俩面所有的工具都是针对普通数字的

*cmath是针对复数的 #这里面所有的工具都是针对复数的

*bool 是特殊的整型

*python中和数字相关的类型有四种:整数int,float,bool,complex

*ai+b — 复数 , i叫虚数单位 , i**2==-1

**注意:python中的复数,j是虚数单位

x=2j+3

y=3j-4

print(x+y) #实部和实部相加,虚部和虚部相加 ( 5j-1)

print(x*y) #(-18+1j)

math模块

1)小数转整数

math.ceil(数字) —向大取整

math.floor(数字) —向小取整

round(数字) — 四舍五入

print(math.ceil(1.9)) #2

print(math.ceil(1.1))

print(math.floor(1.1)) #1

print(round(1.1)) #1

print(round(1.9)) #2

2)求绝对值

math.abs(数字)

math.fabs(数字)

print(abs(-30)) #30

print(math.fabs(-30)) #30.0

print(abs(-30.56)) #30.56

print(math.abs(-30.56))

2.随机模块

import random

1)产生随机整数:random.randint(a,b) —产生a到b的随机整数,[a,b]

print(random.randint(1,2))

2)产生随机小数:random.random() — 产生0-1的随机小数

print(random.random())

#产生1~100的随机小数

print(random.random()*100)

#产生50~100的随机小数

print(random.random()*50+50)

#产生M~N的随机小数:random.random()*(N-M)+M

3)在指定的等差数列中随机获取一个数:random.randrange(起点,终点,步长)

#产生0~100的随机偶数

print(random.randrange(0,101,2))

4)洗牌(随机打乱列表中元素的顺序)

nums=[10,20,30,40,50,60]

random.shuffle(nums)

print(nums)

5)抽牌 (随机从列表中抽取一个数)

random.choice(序列) 一次抽一张牌 获取一个数据

random.choices(序列,k=数量) 一次抽多张牌 获取多个数据(有放回)

random.sample(序列,k=数量) — 随机获取多个元素(无放回)

nums=[10,20,30,40,50,60]

result=random.choice(nums,k=3)

print(result) #[50,20,50]

result=random.sample(nums,k=3)

print(result)

四、哈希摘要

1.哈希加密(摘要)的特点

加密算法中的一类,但不是所有都可用

1)密文不可逆

‘abc’—>‘HAAHSDHOJ’—>‘abc’

eg:忘记密码无法得知你密码是多少只能重新设置

2)相同的数据,通过相同的算法得到的密文相同,不相同的数据通过相同的算法得到的密文不相同

3)不同长度的数据通过相同的算法得到的密文长度相同

‘abc’

2.python生成哈希摘要的方法

import hashlib

#1)根据算法创建hash对象

常用hash算法:md5和shaxxx

hash=hashlib.md5()

#2)添加生成摘要的数据

hash对象.update(二进制数据)

‘’’

python中字符串和二进制的相互转换: 二进制 --bytes

a.字符串转二进制

方法一:bytes(字符串,‘utf-8’)

方法二:字符串.encode()

#hash.update(bytes(‘123456’,‘utf-8’)

hash.update(bytes(‘123456’,'encode())

b.二进制转字符串

方法一:str(二进制,)

方法二:二进制.decode()

‘’’

result1=‘123456’.encode()

print(type(result1))

result2=str(result1,‘utf-8’)

print(result2,type(result2))

result=result1.decode()

print(result3,type(result3))

3)获取摘要值(获取密文)

result=hash.hexdigest()

print( result)

五、time模块

1.time.time() — 获取当前时间,运行程序到此刻的时间(当前时间的时间戳)

补充:时间戳

时间戳指的是某一个时间到1970年1月1日0时0分0秒(格林威治时间)的时间差,单位是秒。

优点:节约内存,时间戳加密更加方便

2.time.localtime()

1)time.localtime() — 获取当前时间(返回的时候本地时间对应的结构体时间)

2)time.localtime(时间戳) — 将时间戳转换成结构体时间

t2=time.localtime()

print(t2)

#通过结构体时间单独获取指定数据指定信息

#tm_wday — 星期值,从0~6表示周一到周天

print(t2.tm_year,t2.tm_mon)

3.time.sleep(时间) — 让程序暂停/等待指定时间(单位秒)

time.sleep(2)

print(’=====================’)

结构体时间和字符串时间的相互转换

4.time.strftime( 时间格式,结构体时间) — 将结构体时间转换成指定格式的字符串时间。

5.time.strptime( ) —先给时间字符串,时间格式() ——将字符串时间转换成结构体时间

#2017-3-24是周几?

#‘2017-3-24’

result=time.strptime(‘2017-3-24 PM 2点’,’%Y-%m-%d %p %I点’)

print(result)

print(result.tm_wday)

6.time.mktime(结构体时间) — 将结构体时间转换成时间戳

六、datetime模块

from datetime import datetime,date,time ,timedelta datetime年月日时分秒

timedelta是用来计算时间的

1.创建detatime类型的数据

1)获取当前时间

t1=datetime.now()

print(t1)

t2=datetime.today()

print(t2)

2)直接提供时间信息

datetime(年,月,日,时=0,分=0,秒=0)

t3=datetime(2018,10,1)

print(t3,type(t3))

3)通过字符串时间创建时间对象

t4=datetime.strptime(’2019-2-23 23:30:51’,’%Y-%m-%d %H:%S’)

print(t4,type(t4))

2.获取时间对象具体时间信息

print(t4.year)

print(t4.month)

print(t4.day)

print(t4.hour)

print(t4.minute)

print(t4.srcond)

3.时间的加减操作

时间对象 -/+ timedelta(days=?,hours=?,minutes=?,second=?,week=?)

练习:2019-3-31 23:59:59 2秒后是什么时候

result=t4+timedelta(second=2)

print(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值