Python基础(九)

文章目录

Python中的加密

hashlib

  • 难破解
  • 不可逆
常用加密方法

base64

python 复制代码
# coding:utf-8

import base64

def encode(data):
    if isinstance(data, str):
        data = data.encode('utf-8')
    elif isinstance(data, bytes):
        data = data
    else:
        raise TypeError('data need to be str or bytes')

    return base64.b64encode(data).decode('utf-8')


def decode(data):
    if not isinstance(data, bytes):
        raise TypeError('data need to be bytes')
    return base64.b64decode(data).decode('utf-8')

if __name__ == '__main__':
    result = encode('zhagnsan')
    print(result)                           # emhhZ25zYW4=
    print(decode(result.encode('utf-8')))   # zhagnsan

日志模块

日志的等级

  • debug
  • info
  • warnning
  • error
  • critical

loggin模块的使用

logging.basicConfig
format具体的格式

常用格式:

format='%(asctime)s %(filename)sline:%(lineno)d %(levelname)s %(message)s'

使用logging
python 复制代码
# coding:utf-8
import logging

logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s')

logging.info('hello world') # 2025-12-30 16:04:35,657 logging_test.py[line:7] INFO hello world

Python内置函数总结



Python的随机模块---random

random.random

random.uniform

random.randint

random.choice

random.sample

random.randrange

python 复制代码
# coding:utf-8

import random

print(random.random()) # 0.31219675861853746

print(random.uniform(10,20)) # 17.623909031688694

print(random.randint(10,20)) # 15

print(random.choice([1,2,3,4,5,6])) # 5
print(random.choice('shdfkl')) # k

print(random.sample([1,2,3,4,5,6],2)) # [4, 2]

print(random.randrange(1,10, 2)) # 5

Python的迭代器

Python的迭代器是一个重要的概念,特别是在处理序列数据和流数据时。迭代器是一种可以逐一遍历集合中所有元素的对象

如何生成迭代器 -- iter

迭代器使用-- next

python 复制代码
# coding:utf-8

list_test = [1,2,3]

iter_test = iter(list_test)

print(next(iter_test)) # 1

迭代器的常用方法☞ 生成迭代器

for循环生成 -- yield
python 复制代码
def yield_test():
    for item in range(10):
        yield item

res = yield_test()
print(res, type(res)) # <generator object yield_test at 0x00000290513E15F0> <class 'generator'>
for循环一行生成迭代器
python 复制代码
res = (i for i in range(10))

迭代器常用方法 ☞ 佛如循环获取

python 复制代码
def yield_test():
    for item in range(10):
        yield item

res = yield_test()
print(res, type(res)) # <generator object yield_test at 0x00000290513E15F0> <class 'generator'>

for item in res:
    print(item, end=' ') # 0 1 2 3 4 5 6 7 8 9

Python中的高级函数

filter
功能

对循环根据过滤条件进行过滤

用法
python 复制代码
res = filter(lambda x: x > 1, [0,1,2,3,4,5])
print(list(res))  # [2, 3, 4, 5]
map
python 复制代码
res = map(lambda x: x > 1, [0,1,2,3,4,5])
print(list(res)) # [False, False, True, True, True, True]
reduce

对循环前后两个数据进行累加或者累乘等操作

python 复制代码
from functools import reduce
res = reduce(lambda x, y: x + y, [0,1,2,3,4,5])
print(res)  # 15
相关推荐
威联通网络存储14 分钟前
TS-h2490FU在面板制造Array段AOI缺陷画廊中的并联
python·制造
Wang's Blog41 分钟前
Go-Zero项目开发24: 基于Bitmap实现群聊消息已读未读
开发语言·后端·golang
接针1 小时前
UV 常用命令
python·uv
二流小码农2 小时前
鸿蒙开发:实现文本渐变效果
android·ios·harmonyos
无垠的广袤2 小时前
【工业树莓派 CM0 Dev Board】扩展板设计
linux·python·嵌入式硬件·pcb设计·模块化·传感器
光头闪亮亮3 小时前
Fyne ( go跨平台GUI )项目实战-项目开发必备基础知识(中)
android·c++·go
Yolanda_20223 小时前
在vscode终端中可使用pip,但是cmd终端中找不到命令 pip问题的解决
vscode·python·conda·pip
光头闪亮亮3 小时前
Fyne ( go跨平台GUI )项目实战-项目开发必备基础知识(上)
android·sqlite·go
光头闪亮亮3 小时前
Fyne ( go跨平台GUI )项目实战-项目开发必备基础知识(下)
android·c++·go
2301_764441333 小时前
用动力学系统(微分方程)为 Kernberg 的客体关系单元提供数学化的操作定义,把“自体—客体“这对心理结构建模成一个二维耦合系统
数据结构·python·算法·数学建模