前面一篇Python界最简单的“爬虫”-小白上楼梯0x05, 为了拿到2个五笔编码对应的词组,写了有6行的重复代码。照这种比例算下去的话,10个五笔编码,就得写30行的重复了。可以肯定的是,程序肯定不是这么写的。#
![c36d19625c304d44beebc9a7048b9af0.png](https://i-blog.csdnimg.cn/blog_migrate/74304898c4209b6b3b7a3d35db2d94c3.jpeg)
重复
### 定义并调用函数
上一篇中,拿到数据的两组关键代码是:
```
```1 bianma = 'wqvb'2 resp = request.urlopen(base_url+bianma)html = str(resp.read(), 'utf-8')print(html)6 bianma = 'anlw'7 resp = request.urlopen(base_url+bianma)html = str(resp.read(), 'utf-8')print(html)
```
有重复的动作:2、7行,将`base_url`和`bianma`连到一起,做为参数,传入程序最开始导入的`request`中定义的`urlopen()`函数,会返回一个`http.client.HTTPResponse`对象。
下一行,调用这个`HTTPResponse`对象的`read()`方法。取到代表整个网页的字符串。
再使用print()函数将html输出到屏幕。
函数,可以想象它就像是一个包工头,把一些特定的、重复的事情承包下来,负责过程,上交结果。
接下来,我会尝试着,定义一个函数,来实现,只要我给这个函数几个字母,它就会打印出返回的数据。
```
def get_a_citiao(bianma): resp = request.urlopen(base_url + bianma) html = str(resp.read(), 'utf-8') print(html)
```
`def 函数名(参数)`,使用这种格式定义一个函数。一个函数必须要使用关键字`def`来起头,必须有函数名和括号,参数可有可无。
上面代码中定义的函数,它的作用是:“给我几个字母,我给你拿到google在线五笔返回的数据”。
这样子,我们便可以将以下几个任务交给`get_a_citiao`去做:
a,打开链接拿到response对象。 b,从response对象中读取字符串 c,将字符串打印出来。
在我们需要的时候,只要使用不同的`参数`去调用这个函数就好(完整代码):
from urllib import requestimport base64def get_a_citiao(bianma): resp = request.urlopen(base_url + bianma) html = str(resp.read(), 'utf-8') print(html)if __name__ == '__main__': ooo = b'aHR0cHM6Ly9pbnB1dHRvb2xzLmdvb2dsZS5jb20vcmVxdWVzdD9pdGM9emgtdC1pMC13dWJpLTE5' b'ODYmbnVtPTEzJmNwPTAmY3M9MSZpZT11dGYtOCZvZT11dGYtOCZhcHA9ZGVtb3BhZ2UmdGV4dD0=' base_url = str(base64.decodebytes(ooo), 'utf-8') get_a_citiao('wqvb') get_a_citiao('anlw')
### Python的基本数据类型
使用python写代码,只要知道6种基本的数据类型就可以了:
1, 数字类型(Number),细分有小数(float)、整数(int)、真假(true/false,相当于1和0)。比如常见的`100`、`3.1415926`。
2, 字符串(String),就是字符组成的一串,可以用`''`(单引号)或者`“”`(双引号)或者`'''`(三个单引号,用于定义多行的字符串,或者直接用于注释)。比如`'吃葡萄不吐葡萄皮'`、`"不吃葡萄反吐葡萄皮"`。
3, 列表(List),一组用中括号`[]`包起来的数据,可以是不同的类型。其中的数据可以半路修改。比如`['a',123,'bcd',2.36,'生活中的美好']`。
4, 元组(tuple),一组用括号`()`包起来的数据,可以是不同的类型,其中的数据不能半路修改。比如`(1,'nice',2.365)`
5, 集合(Set),用`{}`包起来的可以集合其它类型数据的整体,比如`{`nice`,1,34.5,[1,2,'3']}`。集合可以自动去除重复的元素。
6, 字典(Dictionary),用`{}`包起来的键值对,比如`{'name':'学边成','age':30,'职业':'保安'}`。
看官如果觉得一头黑问号的话,不用担心,先忘掉它们,后续使用的过程中,会再次具体讲解。
---
从开始自制五笔到现在,我们已经能够通过传入特定字母的方式,拿到返回的数据了。
接下来,需要做的事有:1,准备好所有的字母,用它们调用那个能拿到数据的函数。2,从返回的数据中拿到汉字与容错码。3, 将有用的数据保存到指定文件中。4,将文件中的词条依据常用程度重新排序。
做完以上4步,咱们就大概地拥有一个完整的五笔词库了。可以挂在别的五笔里面,或者自己生成一个五笔,或者尝试着自己写一个简单的输入法。都是可以的。
请使用头条搜索`自制五笔`,一起零基础做出一个属于自己的五笔,一起学编程。
#Python100天学习计划# #go五笔# #自制五笔# #玩着学编程#
![f5497b0f36020a3458bc6c460e551f89.png](https://i-blog.csdnimg.cn/blog_migrate/b59228314086dd71d336ba7958f9aeab.jpeg)
搜索`小白上楼梯`了解Python基础实例:自制五笔