第17关精华笔记

第17关精华笔记pdf版——同学记得打开电脑浏览器下载哦! 第17关精华笔记.pdf 0.6MB 

代码功能块拆解

  • 登录邮箱
  • 用户与授权码
  • smtp-邮件发送对象的构造
  • 新建并编辑邮件
  • 发送邮件并关闭邮箱服务

登入邮箱流程

需要使用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()方法,无需传入参数即可直接关闭邮箱服务。

# 关闭邮箱服务
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()
(0)

相关推荐