Days
- 00. 简介
- 01. 初识 Python
- 02. 语言元素
- 03. 分支结构
- 04. 循环结构
- 05. 构造程序逻辑
- 06. 函数和模块的使用
- 07. 字符串和常用数据结构
- 08. 面向对象编程基础
- 09. 面向对象进阶
- 10. 图形用户界面和游戏开发
- 11. 文件和异常
- 12. 字符串和正则表达式
- 13. 进程和线程
- 14. 网络编程入门和网络应用开发
- 15. 图像和办公文档处理
- 16 20. Python 语言进阶
- 21 30. Web 前端概述
- 31 35. 玩转 Linux 操作系统
- 36. 关系型数据库和 MySQL 概述
- 37. SQL 详解之 DDL
- 38. SQL 详解之 DML
- 39. SQL 详解之 DQL
- 40. SQL 详解之 DCL
- 41. MySQL 新特性
- 42. 视图、函数和过程
- 43. 索引
- 44. Python接入MySQL数据库
- 45. 大数据平台和HiveSQL
- 46. Django快速上手
- 47. 深入模型
- 48. 静态资源和 Ajax 请求
- 49. Cookie 和 Session
- 50. 制作报表
- 51. 日志和调试工具栏
- 52. 中间件的应用
- 53. 前后端分离开发入门
- 54. RESTful 架构和 DRF 入门
- 55. RESTful 架构和 DRF 进阶
- 56. 使用缓存
- 57. 接入三方平台
- 58. 异步任务和定时任务
- 59. 单元测试
- 60. 项目上线
- 61. 网络数据采集概述
- 62. 用 Python 获取网络资源 1
- 62. 用 Python 解析 HTML 页面 2
- 63. Python 中的并发编程 1
- 63. Python 中的并发编程 2
- 63. Python 中的并发编程 3
- 63. 并发编程在爬虫中的应用
- 64. 使用 Selenium 抓取网页动态内容
- 65. 爬虫框架 Scrapy 简介
- 66. 数据分析概述
- 67. 环境准备
- 68. NumPy 的应用 1
- 69. NumPy 的应用 2
- 70. NumPy 的应用 3
- 71. NumPy 的应用 4
- 72. 深入浅出 pandas 1
- 73. 深入浅出 pandas 2
- 74. 深入浅出 pandas 3
- 75. 深入浅出 pandas 4
- 76. 深入浅出 pandas 5
- 77. 深入浅出 pandas 6
- 78. 数据可视化 1
- 79. 数据可视化 2
- 80. 数据可视化 3
- 81. 人工智能和机器学习概述
- 82. k 最近邻分类
- 83. 决策树
- 83. 推荐系统实战 1
- 84. 贝叶斯分类
- 85. 支持向量机
- 86. K 均值聚类
- 87. 回归分析
- 88. 深度学习入门
- 89. PyTorch 概述
- 90. PyTorch 实战
- 91. 团队项目开发的问题和解决方案
- 92. Docker 容器技术详解
- 93. MySQL 性能优化
- 94. 网络 API 接口设计
- 95. 使用 Django 开发商业项目
- 96. 软件测试和自动化测试
- 97. 电商网站技术要点剖析
- 98. 项目部署上线和性能调优
- 99. 面试中的公共问题
- 100. Python 面试题实录
公开课
番外篇
好玩的 Python
因为下面的代码都非常简单,简单到直接使用Python的交互式环境就能完成。当然,官方Python自带的交互式环境比较难用,推荐大家使用ipython,可以使用下面的命令来安装ipython,安装成功后键入ipython命令就能进入交互式环境。
pip install ipython
或
pip3 install ipython
ipython最直观的优点:
- 可以用?或者??来获取帮助。
- 可以用!调用系统命令。
- 可以使用Tab键自动补全。
- 可以使用魔法指令,如:%timeit。
没有工具用代码也能P图
安装pillow三方库。
PIL(Python Imaging Library)是Python平台事实上的图像处理标准库了。PIL功能非常强大,而API却非常简单易用。但是PIL仅支持到Python 2.7,而且很多年都没有人维护了,于是一群志愿者在PIL的基础上创建了兼容的版本,名字叫Pillow,除了支持Python 3.x还加入了很多有用且有趣的新特性。
pip install pillow
或
pip3 install pillow
加载图片。
from PIL import Image chiling = Image.open('chiling.jpg') chiling.show()
使用滤镜。
from PIL import ImageFilter chiling.filter(ImageFilter.EMBOSS).show() chiling.filter(ImageFilter.CONTOUR).show()
图像剪裁和粘贴。
rect = 220, 690, 265, 740 watch = chiling.crop(rect) watch.show() blured_watch = watch.filter(ImageFilter.GaussianBlur(4)) chiling.paste(blured_watch, (220, 690)) chiling.show()
生成镜像。
chiling2 = chiling.transpose(Image.FLIP_LEFT_RIGHT) chiling2.show()
生成缩略图。
width, height = chiling.size width, height = int(width * 0.4), int(height * 0.4) chiling.thumbnail((width, height))
合成图片。
frame = Image.open('frame.jpg') frame.show() frame.paste(chiling, (210, 150)) frame.paste(chiling2, (522, 150)) frame.show()
上面的知识在Python-100-Days项目的第15天中也有对应的内容。
向微信好友群发祝福视频
安装itchat三方库。
itchat是一个开源的微信个人号接口,使用Python调用微信从未如此简单。
pip install itchat
或
pip3 install itchat
登录微信。
import itchat itchat.auto_login()
说明:用自己的微信扫描屏幕上出现的二维码就完成了登录操作,登录之后才能获取自己的好友信息以及发送消息给自己的好友。
查找自己的朋友。
friends_list = itchat.get_friends(update=True) print(len(friends_list)) luohao = friends_list[0] props = ['NickName', 'Signature', 'Sex'] for prop in props: print(luohao[prop])
说明:friends_list相当于是一个列表,列表中的第一个元素是自己。
随机选出5个朋友,获得他们的用户名、昵称、签名。
lucky_friends = random.sample(friends_list[1:], 5) props = ['NickName', 'Signature', 'City'] for friend in lucky_friends: for prop in props: print(friend[prop] or '没有此项信息') print('-' * 80)
给朋友发送文字消息。
itchat.send_msg('急需一个红包来拯救堕落的灵魂!!!', toUserName='@8e06606db03f0e28d0ff884083f727e6')
群发视频给幸运的朋友们。
lucky_friends = random.sample(friends_list[1:], 5) for friend in lucky_friends: username = friend['UserName'] itchat.send_video('/Users/Hao/Desktop/my_test_video.mp4', toUserName=username)
利用itchat还能做很多事情,比如有好友给自己发了消息又撤回了,如果想查看这些被撤回的消息,itchat就可以做到(注册一个接收消息的钩子函数,请参考CSDN上的一篇文章);再比如,有时候我们想知道某个好友有没有把我们删除或者拉入黑名单,也可以利用itchat封装的群聊功能,非好友和黑名单用户不会被拉入群聊,通过创建群聊函数的返回值就可以判定你和指定的人之间的关系。
不用客户端查看热点新闻
安装requests库。(点击常看官方文档)
pip install requests
或
pip3 install requests
爬取新闻数据或者通过API接口获取新闻数据。
import requests resp = requests.get('http://api.tianapi.com/allnews/?key=请使用自己申请的Key&col=7&num=50')
说明:上面使用了天行数据提供的数据接口,需要的话可以自行去天行数据的网站注册开通,调用接口的时候要填写注册成功后系统分配给你的key。
使用反序列化将JSON字符串解析为字典并获取新闻列表。
import json newslist = json.loads(resp.text)['newslist']
对新闻列表进行循环遍历,找到感兴趣的新闻,例如:华为。
for news in newslist: title = news['title'] url = news['url'] if '华为' in title: print(title) print(url)
调用短信网关发送短信到手机上,告知关注的新闻标题并给出链接。
import re pattern = re.compile(r'https*:\/\/[^\/]*\/(?P<url>.*)') matcher = pattern.match(url) if matcher: url = matcher.group('url') resp = requests.post( url='http://sms-api.luosimao.com/v1/send.json', auth=('api', 'key-请使用你自己申请的Key'), data={ 'mobile': '13548041193', 'message': f'发现一条您可能感兴趣的新闻 - {title},详情点击https://news.china.com/{url} 查看。【Python小课】' }, timeout=10, verify=False )
说明:上面的代码使用了螺丝帽提供的短信网关服务,利用短信网关发送短信是需要支付费用的,但是一般的平台都会提供若干条免费的测试短信。发送短信必须遵守平台的规则,违规的短信是无法发送的。上面发短信时使用的短信模板(“发现一条您可能感兴趣的新闻 - ###,详情点击https://news.china.com/ 查看。”)和短信签名(“【Python小课】”)需要登录螺丝帽管理平台进行配置,如果不清楚如何配置,可以联系平台的客服人员进行咨询。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论