第17关精华笔记pdf版——同学记得打开电脑浏览器下载哦! 第17关精华笔记.pdf 0.6MB
代码功能块拆解
登入邮箱流程
需要使用smtplib模块来连接服务器,登录邮箱账号。
# 设置邮箱账号
account = input('请输入邮箱账户:')
# 设置邮箱授权码
token = input('请输入邮箱授权码:')
# 设置邮箱服务器,端口
smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)
# 登录qq邮箱
smtp.login(account, token)
授权码
授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码。
进入QQ邮箱的设置-帐户页面找到入口, 需通过手机发送短信认证,确认开启
smtplib模块的使用
smtplib
是Python的内置模块,它对SMTP协议进行了简单的封装,提供了一种发送电子邮件的方法。
实例化smtplib中的类SMTP_SSL(),开始配置smtp对象。对象可以调用login方法,完成发送邮件的前期认证准备
# 配置smtp对象的ssl,传输时的内容加密信息
# 由于用qq邮箱,所以使用这个字符串: 'smtp.qq.com',端口号 465
smtp = smtplib.SMTP_SSL(host, port)
# 配置smtp对象的用户认证信息
smtp.login(account, token)
SMTP(简单邮件传输协议)
SMTP是用于发送电子邮件的协议。规定电子邮件应该如何在邮件服务器之间传递。
通过smtp对象调用login()方法可以登录邮箱账号。
设置正文内容
要用到email模块内的类:MIMEText。
实例化这个类,可得到一个简单邮件对象,可以用来承载邮件内容
语法
email_content = MIMEText(_text, _subtype, _chartset)
参数说明
_text
主体内容。
字符串对象,或读取到的附件文件。
_subtype
定义内容格式。
邮件内容为文本格式时,定义为:'plain';
构造附件时,定义为:'base64'。
_chartset
编码方式。此处采用'utf-8',它是电子邮件、网页及其他存储或传送文字的应用中,常常采用的编码。
纯文本实例:
# 纯文本邮件的参数
content = '纯文本字符串'
# 将正文添加到邮件内容里
email_content = MIMEText(content, 'plain', 'utf-8')
邮件基础信息配置
完整的邮件包含收件人、发件人、还有主题的信息。设置的具体操作如下:
# 设置发送者信息
msg['From'] = '发件人'
# 设置接受者信息。
msg['To'] = '收件人'
# 设置邮件标题
msg['Subject'] = '标题标题'
发送邮件
sendmail()是smtplib模块中发送邮件的方法,语法格式如下:
# 发送邮件
smtp.sendmail(from_addr, to_addrs, msg.as_string())
参数说明:
参数1:from_addr(发件邮箱地址)
参数2:to_addrs(收件邮箱地址)
参数3:msg.as_string()(邮件内容)
其中msg是需要发送的邮件内容对象,可以是简单邮件对象也可以是复合邮件对象。
关闭服务
需要用smtplib模块中的方法:quit()。
对smtp对象调用quit()方法,无需传入参数即可直接关闭邮箱服务。
第17关课后练习
练习-自制动态二维码-参考
【参考】
# 先导入模块
from MyQR import myqr
myqr.run(
words='http://weixin.qq.com/r/kzlje9TEE4lsrZAY92yB',
# 扫描二维码后,显示的内容,或是跳转的链接
version=5, # 设置容错率
level='H', # 控制纠错水平,范围是L、M、Q、H,从左到右依次升高
picture='she-3.gif', # 图片所在目录,可以是动图
colorized=True, # 黑白(False)还是彩色(True)
contrast=1.0, # 用以调节图片的对比度,1.0 表示原始图片。默认为1.0。
brightness=1.0, # 用来调节图片的亮度,用法同上。
save_name='Python.gif', # 控制输出文件名,格式可以是 .jpg, .png ,.bmp ,.gif
)
save_dir='指定二维码生成的地址,填写路径就行'
练习-绝对值的多种求法-参考
练习目标:
通过这个练习,你至少可以用3种方法去求某个数的绝对值。
练习要求:
请你通过搜索和步骤中的提示,用不同的方法求绝对值。
建议将其封装成函数,如“abs_value1()”。
【讲解】
明确目标很重要(所以重复三遍)。
做到后面的步骤,可再点开左侧的“练习介绍”查看。
挑战3种方法解题
请根据右侧的关键词提示以及网上搜索,用3种不同的方法求绝对值。
【提示】
内置函数为 abs(),内置模块为 math。
注:绝对值的英文为 absolute value。
【解答】
import math
def abs_value1():
a = float(input('1.请输入一个数字:'))
if a >= 0:
a = a
else:
a = -a
print('绝对值为:%f' % a)
def abs_value2():
a = float(input('2.请输入一个数字:'))
a = abs(a)
print('绝对值为:%f' % a)
def abs_value3():
a = float(input('3.请输入一个数字:'))
a = math.fabs(a)
print('绝对值为:%f' % a)
abs_value1()
abs_value2()
abs_value3()