Python练习册0-9

Python练习册0-9

By 白熊花田(http://blog.csdn.net/whiterbear) 转载需注明出处,谢谢。

这段时间在家做了点Python练习册里的题目,里面的题目都不是很难,但是做起来还是要费点时间的,适合熟悉python的使用。这里先给出前十道题的解答思路和代码。

第 0000 题:将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果。

类似于图中效果

思路:利用Python的PIL模块,PIL模块提供了图片生成,图片绘制等方法。本题需要利用PIL中ImageFont模块,在调用时会报The _imagingft C module is not installed错,可以参考这篇博客解决

第 0001 题:做为 Apple Store App 独立开发者,你要搞限时促销,为你的应用生成激活码(或者优惠券),使用 Python 如何生成 200 个激活码(或者优惠券)?

思路:首先搞懂优惠券是什么东西,优惠券是活动时给用户发送的独一无二的能验证的标示号。生成不重复的标示号并不难,但是,如果想生成易识别不易伪造的标示号你可能要参考这篇博客

第 0002 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 MySQL 关系型数据库中。

思路:安装mysql,学习常见的几个python操作mysql的代码即可。Mac下安装使用mysql似乎比其他平台更麻烦,可参考这篇博客来安装配置Mysql。

第 0003 题:将 0001 题生成的 200 个激活码(或者优惠券)保存到 Redis 非关系型数据库中。

思路:第一次接触NoSQL,先去搜索了redis以及其他几个非关系型数据库的特性,然后去官网下载了redis,安装了redis后又去安装了python下的redis模块。

下面给出简单的redis安装使用以及python的redis模块的安装使用。

下载:

去官网下载最新版本的redis,我的是redis-3.0.2

安装:

进入redis-3.0.2目录,输入make,之后输入make test

启动redis服务:

在redis目录下,输入:src/redis-server

关闭redis服务:

jhbdeMacBook-Pro:redis-3.0.2 jhb$ src/redis-cli

127.0.0.1:6379> shutdown

not connected>

redis还有很多其他的命令和相关配置的编辑,具体可以谷歌之。

python下使用redis需要:

sudo pip install redis

引用:

import redis

连接:

r = redis.Redis(host=‘localhost‘, port=6379, db=0)

其他用法请参考API文档

第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。

思路:遍历文本,使用split进行分词,用字典进行存储。

第 0005 题:你有一个目录,装了很多照片,把它们的尺寸变成都不大于 iPhone5 分辨率的大小。

思路:又是一道需要PIL解决的题。PIL的Image模块提供了resize函数,可以根据给定的size重新保存图片。判断图片size是否大于iPhone5的尺寸,然后按照长宽差距较大的进行图片成比例缩放,然后保存。

第 0006 题:你有一个目录,放了你一个月的日记,都是 txt,为了避免分词的问题,假设内容都是英文,请统计出你认为每篇日记最重要的词。

思路:依旧是文本单词统计找出出现频率最高的几个词代表整篇日记的特征。要注意的是,有些词出现频率很高,但是不能是重要的词,比如a, the, is等,它们是停止词,需要过滤掉它们。当然,即使是去除了停止词也只是粗略的找出重要的词,深入的分析还需要计算每个词的权重(TF-IDF?),这里不做深入讨论。

第 0007 题:有个目录,里面是你自己写过的程序,统计一下你写过多少行代码。包括空行和注释,但是要分别列出来。

思路:获取目录下所有的文件,提取文件是.py or .c or .cpp or .java等结尾的。对于不同类型的程序文件需要单独处理。我只实现了.py的文件的统计。依次打开文件,遍历每行,用正则判断是否是注释,如果不是,判断本行是否含有非空白符,有则为代码,无即为空行。需要注意的是,通过windows下记事本以utf-8保存的文件会有BOM头,会导致首行注释判断失败。

第 0008 题:一个HTML文件,找出里面的正文

思路:使用BeautifulSoup模块,然而,有些html文本在用BeautifulSoup的text属性时,仍然会输出一些js的代码。建议还是使用其他方法比如正则匹配来做吧。

第 0009 题:一个HTML文件,找出里面的链接

思路:使用requests获取网页,用正则提取出所有的链接。

代码链接

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-09 12:07:17

Python练习册0-9的相关文章

Python练习册--PIL处理图片之加水印

背景 最近在看到了Python 练习册,每天一个小程序 这个项目,非常有趣,也比较实用. 晚上看了这第000题,关于Python图片处理: 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果. 类似于图中效果 之前没怎么使用过PIL库,在生成验证码及识别验证码时也需要了解这方面知识,就动手试了实践下. PIL The Python Imaging Library adds image processing capabilities to your Pyth

Python 练习册,每天一个小程序

Python 练习册,每天一个小程序 说明: Python 练习册,每天一个小程序.注:将 Python 换成其他语言,大多数题目也适用 不会出现诸如「打印九九乘法表」.「打印水仙花」之类的题目 点此链接,会看到每个题目的代码, 欢迎大家 Pull Request 出题目,贴代码(Gist.Blog皆可):-) 本文本文由@史江歌([email protected] QQ:499065469)根据互联网资料收集整理而成,感谢互联网,感谢各位的分享.鸣谢!本文会不断更新. Talk is chea

Python练习册,每天一个小程序

Python练习册,每天一个小程序 精选评论关注该公众号可参与评论 写评论 加载中 以上评论由公众帐号筛选后显示 Python练习册,每天一个小程序 提交 我的评论 已评论 Python练习册,每天一个小程序 2014-12-15 程序猿 说明: ●Python 练习册,每天一个小程序.注:将 Python 换成其他语言,大多数题目也试用 ●不会出现诸如「打印九九乘法表」.「打印水仙花」之类的题目 ●欢迎大家 Pull Request 出题目,贴代码(Gist.Blog皆可):-) ●访问链接h

20170513 Python练习册0011替换敏感词

#!/usr/bin/env python# -*-coding:utf-8-*- # 第 0012 题: 敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,# 例如当用户输入「北京是个好城市」,则变成「**是个好城市」.import re def filted_word(filename): word_list=[]#定义一个空列表 with open(filename,'r') as f:#以读打开文件 for l

Python 3.6.0的sqlite3模块无法执行VACUUM语句

Python 3.6.0的sqlite3模块存在一个bug(见issue 29003),无法执行VACUUM语句. 一执行就出现异常: Traceback (most recent call last):  File "D:\desktop\cannot_vacuum.py", line 25, in <module>    conn.execute('VACUUM')sqlite3.OperationalError: cannot VACUUM from within a

Apache Qpid Python 1.35.0 发布

Apache Qpid Python 1.35.0 发布了,Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议.提供了 Java.C++ 两种服务端版本以及 Java.C++..NET.Python和Ruby语言的客户端. 增强: QPID-6475 - 08..09 Send connection.close before closing socket QPID-6567 - Support producer

20170513 Python练习册0011过滤敏感词

#!/usr/bin/env python# -*-coding:utf-8-*- # 第 0011 题: 敏感词文本文件 filtered_words.txt,里面的内容为以下内容,# 当用户输入敏感词语时,则打印出 Freedom,否则打印出 Human Rights.import re def filted_word(filename): word_list=[]#定义一个空列表 with open(filename,'r') as f:#以读打开文件 for line in f:#以行为

在 Ubuntu 16.04 LTS 上安装 Python 3.6.0

转自(http://blog.csdn.net/Wangdada111/article/details/73382537?locationNum=2&fps=1) 安装: wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz xz -d Python-3.6.0.tar.xz tar -xvf Python-3.6.0.tar cd Python-3.6.0 ./configure make sudo make inst

python wingIDE 5.0 安装和破解

之前网上的破解方法多是以替换pyo文件为主. 经在win7和win8 下经验发现,替换后,ide就启动不起来了. 除此之外还有大把的反编译破解教程,对于时间不宽裕的孩子,估计更是没心情看. 几经折腾,最后发现这个计算注册码的脚本. 整理后的安装包,破解脚本和破解方法描述文本,整理打包放在百度云盘上.下面是下载链接. http://pan.baidu.com/s/1kTFUwsB   最后,尊重别人的劳动和原创. http://lovesoo.org/wingide-zhu-ce-po-jie-f