Python,函數,數據類型-小白上樓梯0x06

前面一篇 , 為了拿到2個五筆編碼對應的詞組,寫了有6行的重複代碼。照這種比例算下去的話,10個五筆編碼,就得寫30行的重複了。可以肯定的是,程序肯定不是這麼寫的。#

Python,函數,數據類型-小白上樓梯0x06

重複


### 定義並調用函數

上一篇中,拿到數據的兩組關鍵代碼是:

```

<code>```
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)/<code>

```

有重複的動作:2、7行,將`base_url`和`bianma`連到一起,做為參數,傳入程序最開始導入的`request`中定義的`urlopen()`函數,會返回一個`http.client.HTTPResponse`對象。

下一行,調用這個`HTTPResponse`對象的`read()`方法。取到代表整個網頁的字符串。

再使用print()函數將html輸出到屏幕。

函數,可以想象它就像是一個包工頭,把一些特定的、重複的事情承包下來,負責過程,上交結果。

接下來,我會嘗試著,定義一個函數,來實現,只要我給這個函數幾個字母,它就會打印出返回的數據。

```

<code>def get_a_citiao(bianma):
resp = request.urlopen(base_url + bianma)
html = str(resp.read(), 'utf-8')
print(html)/<code>

```

`def 函數名(參數)`,使用這種格式定義一個函數。一個函數必須要使用關鍵字`def`來起頭,必須有函數名和括號,參數可有可無。

上面代碼中定義的函數,它的作用是:“給我幾個字母,我給你拿到google在線五筆返回的數據”。

這樣子,我們便可以將以下幾個任務交給`get_a_citiao`去做:

a,打開鏈接拿到response對象。 b,從response對象中讀取字符串 c,將字符串打印出來。

在我們需要的時候,只要使用不同的`參數`去調用這個函數就好(完整代碼):

<code>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')/<code>

### 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步,咱們就大概地擁有一個完整的五筆詞庫了。可以掛在別的五筆裡面,或者自己生成一個五筆,或者嘗試著自己寫一個簡單的輸入法。都是可以的。

請使用頭條搜索`自制五筆`,一起零基礎做出一個屬於自己的五筆,一起學編程。


Python,函數,數據類型-小白上樓梯0x06

搜索`小白上樓梯`瞭解Python基礎實例:自制五筆


分享到:


相關文章: