前面一篇,使用Python拿到五笔词库-小白上楼梯0x05 为了拿到2个五笔编码对应的词组,写了有6行的重复代码。照这种比例算下去的话,10个五笔编码,就得写30行的重复了。可以肯定的是,程序肯定不是这么写的。#

定义并调用函数

上一篇中,拿到数据的两组关键代码是:

1
2
3
4
5
6
7
8
9
bianma = 'wqvb'
resp = request.urlopen(base_url+bianma)
html = str(resp.read(), 'utf-8')
print(html)

bianma = 'anlw'
resp = request.urlopen(base_url+bianma)
html = str(resp.read(), 'utf-8')
print(html)

有重复的动作:2、7行,将base_urlbianma连到一起,做为参数,传入程序最开始导入的request中定义的urlopen()函数,会返回一个http.client.HTTPResponse对象。

下一行,调用这个HTTPResponse对象的read()方法。取到代表整个网页的字符串。

再使用print()函数将html输出到屏幕。

函数,可以想象它就像是一个包工头,把一些特定的、重复的事情承包下来,负责过程,上交结果。

接下来,我会尝试着,定义一个函数,来实现,只要我给这个函数几个字母,它就会打印出返回的数据。

1
2
3
4
5

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,将字符串打印出来。

在我们需要的时候,只要使用不同的参数去调用这个函数就好(完整代码):

1
2
3
4
5
6
7
8
9
10
11
12
from urllib import request
import base64
def get_a_citiao(bianma):
resp = request.urlopen(base_url + bianma)
html = str(resp.read(), 'utf-8')
print(html)
if __name__ == '__main__':
ooo = b'aHR0cHM6Ly9pbnB1dHRvb2xzLmdvb2dsZS5jb20vcmVxdWVzdD9pdGM9emgtdC1pMC13dWJpLTE5\n' \
b'ODYmbnVtPTEzJmNwPTAmY3M9MSZpZT11dGYtOCZvZT11dGYtOCZhcHA9ZGVtb3BhZ2UmdGV4dD0=\n'
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)。比如常见的1003.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步,咱们就大概地拥有一个完整的五笔词库了。可以挂在别的五笔里面,或者自己生成一个五笔,或者尝试着自己写一个简单的输入法。都是可以的。

请使用头条搜索自制五笔,一起零基础做出一个属于自己的五笔,一起学编程。

最后更新: 2020年03月31日 17:02

原始链接: https://nimeiz.gitee.io/notes/python-def-function/

× 愿我的文字带给你阳光
打赏二维码