Python_day9:常用内建模块

本文详细介绍了 Python 中常用的模块,包括 datetime 模块处理日期时间、collections 模块中的一些高级容器类如 namedtuple、deque 和 defaultdict 等,以及 base64、struct、hashlib 和 hmac 模块的基本使用方法。

 

Python

PHP

常用内建模块

 

 

datetime

处理时间和日期

 

获取当前时间和日期

from datetime import datetime
now = datetime.now()
  print(now)

 

获取指定日期的时间

dt = datetime(1992,4,12,12,12,12)
  print(dt)

 

将datetime转换成时间戳

dt2tm = datetime.now().timestamp()
  print(dt2tm)

 

将timestamp转换成datetime

tm2dt= datetime.fromtimestamp(dt2tm)
  print(tm2dt)

 

字符串转换成datetime

cday = datetime.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S')
  print(cday)

 

datetime转换成str

print(now.strftime('%a, %b %d %H:%M'))

 

datetime增减运算

now= datetime.now()
res = now+ timedelta(hours=10)
  print(res)

 

tt = '2015-1-21 9:01:30'
  s2d = datetime.strptime(tt, '%Y-%m-%d %H:%M:%S')
  d2t = s2d.timestamp()
  print(d2t)

 

 

 

time()

date()

 

Python

PHP

collections

一些常用类的集合

 

namedtuple

from collections import namedtuple
Point = namedtuple('Point',['x','y'])
res = Point(1,2)
  print(res.x)

用函数定义的形式形成一个自定义的tuple对象

 

deque

from collections import deque
q = deque(['a','b','c'])
q.append('d')
q.appendleft('0')
q.pop()
  print(q)

高效的可操作list

 

defaultdict

from collections import defaultdict
dd = defaultdict(lambda :'N/A')
dd['key1']='abc'
  print(dd['key1'])
  print(dd['key2'])

一个找不到键值对返回默认值的dict

 

OrderedDict

from collections import OrderedDict
d = dict([('a', 1), ('b', 2), ('c', 3)])
od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
od[3] = 1
  print(d)
  print(od)

形成一个有序存在的dict

 

counter

from collections import Counter
c = Counter()
  for ch in 'programming':
    c[ch] = c[ch]+1
  print(c)

一个dict形式的计数器

 

 

Python

PHP

base64

import base64
res = base64.b64encode(b'binary\x00string')
res = base64.b64decode(res)
  print(res)
res = base64.urlsafe_b64encode(b'i\xb7\x1d\xfb\xef\xff')
res = base64.urlsafe_b64decode(res)
  print(res)

 

Base64适用于小段内容的编码,比如数字证书签名、Cookie的内容等

 

struct

import struct
res = struct.pack('>I', 10240099)
  print(res)
  
res = struct.unpack('>IH', b'\xf0\xf0\xf0\xf0\x80\x80')
  print(res)

structpack函数把任意数据类型变成bytes

 

hashlib

md532位):

import hashlib
md5 = hashlib.md5()
md5.update('how to use md5 in python hashlib?'.encode('utf-8'))
  print(md5.hexdigest())

sha140位)(与md5相似):

import hashlib
  sha1 = hashlib.sha1()
  sha1.update('how to use md5 in python hashlib?'.encode('utf-8'))
  print(sha1.hexdigest())

 

任意长度的数据转换为一个长度固定的数据串,通常用16进制的字符串表示

 

用户密码加盐后再加密

 

hmac

import hmac
message = b'Hello, world!'
  key = b'secret'
  h = hmac.new(key,message,digestmod='MD5')
print(h.hexdigest())

通过一个标准算法,在计算哈希的过程中,把key混入计算过程中

 

 

Python

PHP

itertools

count():无限计数

import itertools
natuals = itertools.count(1)
  for n in natuals:
    print(n)

cycle():无限循环

import itertools
natuals = itertools.cycle('ABC')
  for n in natuals:
    print(n)

repeat():无限重复/指定重复

import itertools
ns = itertools.repeat('A', 3)
  for n in ns:
    print(n)

 

 

takewhile()

import itertools
natuals = itertools.count(1)
ns = itertools.takewhile(lambda x: x <= 10, natuals)
  print(list(ns))

迭代结束条件

 

chain()

import itertools
  for c in itertools.chain('ABC', 'XYZ'):
    print(c)

连接

 

groupby()

import itertools
  for key, group in itertools.groupby('AaABBBCCAaA',lambda c: c.upper()):
    print(key, list(group))

相邻重复元素分组,lambda为可选参数

 

 

Python

PHP

contextlib

with open('/path/to/file', 'r') as f:

    f.read()

 

urllib

from urllib import request

with request.urlopen('https://api.douban.com/v2/book/2129650') as f:
   
data = f.read()
   
print('Status:',f.status,f.reason)
   
for k,v in f.getheaders():
       
print('%s:%s' % (k,v) )
   
print('Data:',data.decode('utf-8'))

get请求一个网页链接

 

 

from urllib import request
req
= request.Request('http://www.douban.com/')
req.add_header(
'User-Agent', 'Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25')
with request.urlopen(req) as f:
   
data = f.read()
   
print('Status:',f.status,f.reason)
   
for k,v in f.getheaders():
       
print('%s:%s' % (k,v) )
   
print('Data:',data.decode('utf-8'))

get模拟手机版浏览器,需要使用Request对象添加头部

 

 

post以及 proxy_handler…

 

XML解析

 

 

HTMLParser

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

随着人类对生命健康需求的不断增长,新药研发面临着前所未有的挑战。传统的药物研发流程通常耗时长达十年以上,耗资数十亿美元,且最终成功率极低,这在制药界被称为“反摩尔定律”困境。近年来,人工智能技术的飞速发展,特别是深度学习和大数据分析的广泛应用,为新药发现带来了革命性的契机。人工智能能够从海量的化学和生物数据中挖掘潜在规律,显著加速药物靶点发现、先导化合物优化等关键环节。在此背景下,本研究旨在设计并实现一个基于人工智能的新药发现辅助系统,以期为传统药物研发流程提供高效的智能化辅助工具,从而有效缩短研发周期并大幅降低研发成本。本研究以Python作为主要开发语言,深度结合PyTorch和TensorFlow两大主流深度学习框架,并集成RDKit化学信息学工具包,构建了一个功能完善的新药发现辅助系统。系统的核心目标是利用先进的人工智能技术辅助新药分子的设计与活性评估。在研究方法上,本文创新性地提出了一种融合多模态数据的新药发现算法。该算法综合处理分子的多种表示形式,包括一维的SMILES序列、二维的分子图结构以及三维的空间构象数据。通过构建多通道神经网络,系统能够有效提取并融合不同模态的特征,从而全面捕捉分子的理化性质与生物学活性之间的复杂非线性关系。 【课程报告内容】 摘要 第1章 绪论 第2章 相关技术与理论 第3章 系统需求分析 第4章 系统总体设计 第5章 系统详细设计与实现 第6章 系统测试与分析 第7章 总结与展望 参考文献 附件-实现指南
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值