暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Python 基础知识整理 - 标准库简介(2)

数据库杂货铺 2022-01-01
257

标准库简介

 

字符串模式匹配

 

re 模块为高级字符串处理提供正则表达式工具。对于复杂的匹配和操作,正则表达式提供简洁、优化的解决方案:

 

import re


print(re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest'))
print(re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat hat'))
复制

 

运行结果:

['foot', 'fell', 'fastest']
cat in the hat
复制

  

当只需要简单的功能时,字符串方法是首选,因为它们更容易阅读和调试:

 

print('tea for too'.replace('too', 'two'))
复制

 

数学

 

math 模块提供了访问底层C库函数处理浮点数学的能力:

 

import math
print(math.cos(math.pi / 4))
print(math.log(1024, 2))
复制

 

运行结果:

 

0.7071067811865476
10.0
复制

 

random 模块提供了进行随机选择的工具:

 

import random


print(random.choice(['apple', 'pear', 'banana']))
print(random.sample(range(100), 10)) # 无放回抽样
listnum = [11, 22, 11, 33, 33, 22]
print(random.sample(listnum, 3)) # 无放回抽样
print(random.random()) # 随机浮点数
print(random.randrange(6)) # 从 range(6) 中选择的随机整数
复制

 

运行结果:

 

pear
[22, 15, 83, 51, 98, 27, 36, 52, 71, 46]
[11, 33, 33]
0.34933603439488936
3
复制

 

statistics 模块计算数值数据的基本统计属性(均值、中值、方差等)

 

import statistics


data = [2.75, 1.75, 1.25, 0.25, 0.5, 1.25, 3.5]
print(statistics.mean(data))
print(statistics.median(data))
print(statistics.variance(data))
复制

 

运行结果:

 

1.6071428571428572
1.25
1.3720238095238095
复制


 

SciPy 项目有许多用于数值计算的其他模块。

 

因特网访问

 

有许多模块用于访问互联网和处理互联网协议。其中最简单的两个: urllib.request URL 获取数据,smtplib 用于发送邮件:

 

from urllib.request import urlopen


with urlopen('https://www.163.com/') as response:
for line in response:
line = line.decode('utf-8')
if 'html' in line:
print(line)
break



import smtplib


#代码来自网络
def send_email(smtp_server, sender, passwd, receiver_list, subject, content):
receiver = receiver_list
if isinstance(receiver_list, list):
receiver = ",".join(receiver_list) # 多个收件人之间用,隔开


# 注意主题和正文中有一个空行
msg = '\r\n'.join([
'From: %s' % sender,
'To: %s' % receiver,
'Subject: %s' % subject,
'',
content
])


try:
s = smtplib.SMTP()
# 连接smtp服务器
s.connect(smtp_server)
# 登陆 对于163邮箱,使用授权码而不是密码登陆第三方邮件客户端
s.login(sender, passwd)
# 发送邮件
s.sendmail(sender, receiver_list, msg)
print ('success')
s.quit()
except Exception as e:
print (e)


#代码参考自网络,经测试,修改 sender、password、receiver 即可成功通过163账号发送邮件
def send_email_test():
smtp_server = 'smtp.163.com'
sender = 'myaccount@163.com' # 发件人
password = 'ZT************OH' # 163邮箱的登陆授权码


# 收件人
receiver = ['myaccount@163.com']
# 邮件主题
subject = '仅仅是测试'

content = "仅仅是测试内容"


send_email(smtp_server, sender, password, receiver, subject, content)

send_email_test()
复制

 

 

 

官方文档:

https://docs.python.org/3.9/tutorial/stdlib.html

 


文章转载自数据库杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论