专栏名称: python
隔天更新python文章,我希望用我的努力换来劳动的成果帮助更多的人掌握一门技术,因此我要更加努力。
目录
相关文章推荐
Python爱好者社区  ·  “给我滚出贵大!”郑强出任贵州大学校长,打算 ... ·  3 天前  
Python爱好者社区  ·  python接私活,yyds ·  昨天  
Python开发者  ·  国产 DeepSeek V3 ... ·  5 天前  
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  4 天前  
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  4 天前  
51好读  ›  专栏  ›  python

Python练习手册,20个精选题目【答案】

python  · 公众号  · Python  · 2017-11-19 18:00

正文


第0000题

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

这个问题需要用到PIL库,涉及到一些非常基本的用法。代码如下:

作为一个Python初学者,写这段程序的时候遇到了很多错误,首先是路径,“\”需要用转义字符来转义一下。
在实例字体对象的时候,需要加载系统中的字体,windows系统的字体文件在C:\windows\fonts目录下面,一开始加载的时候直接用了资源管理器中显示的名称,并且理所当然的认为文件应该是ttf文件。结果报错

IOError: cannot open resource

肯定是找不到文件了,于是从fonts目录拷贝了一种字体到其它文件夹,发现文件名称弄错了,而且有些字体看起来是一个文件,拷贝到其它文件会变成好几个文件,而且文件名也跟看起来不太一样。
为了图省事,直接把字体文件拷贝到了工作目录下的pictures文件夹了。

最后调用text()方法给图片添加文字时,出现了喜闻乐见的编码错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe4 in position 37: ordinal not in range(128)

利用万能的Google,解决方法如下:

第0001题


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

知识点:

1、range生成随机数

2、int类型转换成char类型用chr() 函数

3、从list中随机取数,用random.sample()

第0002题


任一个英文的纯文本文件,统计其中的单词出现的个数

1、strip()没有参数时,删除空白符,包括\n \r \t 空格。strip() 函数只能用于str类型,list类型等不可用。

2、split()用于分割,分隔符可以自己制定

第0003题

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


第0004题

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


简单分析题目可知,可以把整个程序设计分为以下两个部分来完成:

函数1:遍历目标目录下的所有文件,对于每个txt文件调用函数2统计单词,输出结果。

函数2:对传入的txt文件进行单词计数统计,返回最高频使用的词及其出现次数。

可以看出本题的重点在于函数2的实现。

下面重点分析一下函数2的实现:

1.从txt文件中读出文章内容后,因文章中单词大小写不一,不方便后续处理,使用 string.lower() 方法,将文章内容统一小写化

2.使用 re.findall() 方法进行正则表达式匹配,值得注意的是 re.findall() 方法匹配后会返回一个由文章所有词组成的列表,且重复出现的单词不会被去重

3.使用 list.Counter() 方法对列表中单词出现次数进行排序,会返回一个单词—出现次数一一键值对应的字典

4.排除一些代词、冠词的干扰,即代码中使用stop_word进行的过滤词

5.使用 Counter.most_common() 方法对字典中的词按值排降序,会返回一个由许多元组所组成的列表,按值的大小依次降序排列

第0005题


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

第0006题

一个HTML文件,找出里面的 正文

from bs4 import BeautifulSoup
import requests

r = 'http://www.toutiao.com/a6389133537292304642/'
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}
url = requests.get(r,headers=headers)
soup = BeautifulSoup(url.text,'lxml')
print(soup.get_text())

第0007题

一个HTML文件,找出里面的 链接

第0008题


使用 Python 生成类似于下图中的 字母验证码图片

# coding=utf-8

import os

from PIL import Image

from PIL import ImageDraw

from PIL import ImageFont

import numpy,random,numexpr

path = os.path.split(os.path.realpath( __file__ ))[ 0 ]

NewArray = numpy.zeros(( 100 , 300 , 3 ), dtype = numpy.uint8)

Sh = NewArray.shape

for i in range (Sh[ 0 ]):

for j in range (Sh[ 1 ]):

for k in range (Sh[ 2 ]):

NewArray[i][j][k] = random.randint( 0 , 255 )

im = Image.fromarray(NewArray)

D = ImageDraw.Draw(im)

L = [ chr (i + 65 ) for i in range ( 26 )] + [ chr (i + 97 ) for i in range ( 26 )]

for i in range ( 4 ):

D.text(( 75 * i + 10 + random.randint( - 10 , 10 ),random.randint( 0 , 40 )), random.choice(L), font = ImageFont.truetype(os.path.split(path)[ 0 ] + " /public/msyh_3.ttf " , 55 ), fill = (random.randint( 0 , 255 ),random.randint( 0 , 255 ),random.randint( 0 , 255 )))

im.save(path + " /code.jpg " )

第0009题


敏感词文本文件 filtered_words.txt,里面的内容为以下内容,当用户输入敏感词语时,则打印出 Freedom,否则打印出 Human Rights。

第0010题


敏感词文本文件 filtered_words.txt,里面的内容 和 0011题一样,当用户输入敏感词语,则用 星号 * 替换,例如当用户输入「北京是个好城市」,则变成「**是个好城市」。







请到「今天看啥」查看全文