python 随机数/time,hashlib模块/异常(第四次笔记)

这篇笔记介绍了Python编程中的关键概念,包括随机数的生成,如整数、小数和序列中的随机值;time模块的时间处理,如时间戳、时间元组和格式化时间字符串;hashlib模块的加密功能;JSON模块的数据序列化和反序列化操作;以及异常处理和断言的使用,确保程序稳定运行。
摘要由CSDN通过智能技术生成

随机数

随机数:应用抽奖,验证码等。

import random

随机一个整数:包含开始值和结束值

print (random.randint(1,30))

随机一个小数:0~1之间的小数

print(random.random())

随机范围(包含头不包含尾,不包含结束值) 步长值

print(random.randrange(0,10,1))

随机序列中的某个值

print(random.choice(["a","1","b","c","3"]))

纯数字的验证码

print (random.randint(1000,9999))

大写字母+数字的n位验证码

import random
def verification_code(n):
	code = ""
	for i in range(n):
		num = random.randint(0,9)
		if num % 2 == 0:
			code += str(random.randint(0,9))
		else:
			code += chr(random.randint(65,90))
print(verification_code(4))

time时间块

time时间块

import time

时间戳(小数) 1970-01-01 00:00:00(格林威治时间) 秒数
作用:方便计算机存储,方便运算

print(time.time())

时间元组(命名元组类型)(中间形态)。 作用:作为函数的参数,开发时候使用

print(time.localtime().tm_year)

格式化时间字符串

print(time.strftime("%Y-%m-%d %H:%m:%s")) #显示的格式

时间戳 -> 时间元组 -> 时间字符串 的转换

print(time.strftime("%Y-%m-%d %H:%m:%s",time.localtime()))

时间字符串 -> 时间元组 -> 时间戳的转换

print(time.mktime(time.strftime("2001-9-11 8:30:00","%Y-%m-%d %H:%m:%s")))

睡眠

time.sleep(10) :暂停十秒

hashlib模块

hashlib模块(不可逆加密)主要提供字符加密功能。

import hashlib 
md5 = hashlib.md5("123456.".encode("utf-8"))
#md5 可以换成sha1  sha2 ...安全性能更高

md5.update("●0●".encode("utf-8"))
print (md5.hexdigest())#hexdigest 十六进制转换方法

实现数据序列化与反序列化
序列化:将数据对象转换为字符串用于网络数据传输和数据存储
反序列化:将特定格式化字符串转化为数据对象的,用于在程序中运行

json模块

json 目前最流行的一种数据格式,最初是js中的格式,后来被各大语言所支持。目前是不同语言代码之间进行数据通信的首选格式。是一种轻量级的数据交换格式,易于人阅读和编写

import json

json 格式 字符串:"{key:value1,}"
对比:

#  js         	 	python
#  字符串""      	字符串
#  数组[]        	列表/元组
#  对象        		字典
#  true/false       True/False
dic = {
	'name':'wjl',
	'age':19,
	'email':'3046702022@qq.com',
	'tuple':(1,2,3,4,True,False)
}

功能:
json.dump(obj,fp) 将 obj 对象转换成 JSON 字符串输出到 fp 流中,fp 是一个支持 write() 方法的类文件对象。
json.dumps(obj):将 obj 对象转换为 JSON 字符串,并返回该JSON 字符串。
json.load(fp):从 fp 流读取 JSON 字符串,将其恢复成 JSON 对象,其中 fp 是一个支持 write() 方法的类文件对象。
json.loads(s):将 JSON 字符串 s 恢复成 Python 对象。
dumps 导出为json字符串。 loads 加载为Python对象
json.dumps 用于将 Python 对象编码成 JSON 字符串

import json
dic = {
	'name':'wjl',
	'age':19,
	'email':'3046702022@qq.com',
	'tuple':(1,2,3,4,True,False)
}
with open("my.json","w",encoding="utf-8") as f:
	json.dump(dic,f)
with open("my.json","r",encoding="utf-8") as f:
	obj = json.load(f)
print(obj["email"])

异常处理

异常处理:让程序不报错(不终止运行,可以提示错误,记录进错误日志)。
语法:
try: 测试范围----可能出现的异常语句
except 异常1[as reason]
捕获异常1的处理代码

else 如果没有发现异常-----则执行该语句
finally 无论是否发生异常都将执行该语句,执行完成后退出try语句
raise 语句:用于强制抛出异常,通常用于抛出自定义异常

try :
	#编写有可能会出错的代码
	s = "a" + 100
except Exception as e:  #Exception 任何错误都能执行 格式错误不行
	#当代吗有异常时候执行,无异常不执行
	#作用: 1:错误时候只提示,不中断
	#		2: 写入错误日志
	#		3:补救措施,让之后的代码正常运行
	print("有%s错误 原因是%s" %(Exception,e))
else:
	#只当程序正常时候执行(可选)
	print("一切正常")
	
finally:  # 加不加都一样 不影响程序  了解即可
	#不论是否报错,它都会执行
	for i in range(5):
		print(i)

断言

断言:(Assertions):在需要的时候进行报错。在特定情况下触发执行某个错误

name = "wjl"
assert name == "wjl",NameError("不正确")
#当name中的 "wjl" 等于assert name == "wjl"时候执行  否则报错
age = 20	
class AgeError(Exception:)
		"""docstring for ClassName """
		pass
age = 17		
if age < 18:
		raise AgeError("年龄太小。。。。。")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值