第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()
|