国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Python 語法摘要1

2019-11-14 11:32:24
字體:
來源:轉載
供稿:網友

一、詞典

  列表是Python里的一個類。一個特定的表,比如說nl = [1,3,8],就是這個類的一個對象。我們可以調用這個對象的一些方法,比如 nl.append(15)。 我們要介紹一個新的類,詞典 (dictionary)。與列表相似,詞典也可以儲存多個元素。這種儲存多個元素的對象稱為容器(container)。

基本概念

常見的創建詞典的方法:

>>>dic = {'tom':11, 'sam':57,'lily':100}>>>PRint type(dic)

詞典元素的循環調用

>>>dic = {'lilei': 90, 'lily': 100, 'sam': 57, 'tom': 90}>>>for key in dic:   print dic[key]

詞典的常用方法

>>>print dic.keys() # 返回dic所有的鍵>>>print dic.values() # 返回dic所有的值>>>print dic.items() # 返回dic所有的元素(鍵值對)>>>dic.clear()

另外有一個很常用的用法:

>>>del dic['tom'] # 刪除 dic 的‘tom’元素

del是Python中保留的關鍵字,用于刪除對象。

與表類似,你可以用len()查詢詞典中的元素總數。

>>>print len(dic)

二、文本文件的輸入輸出

  Python具有基本的文本文件讀寫功能。Python的標準庫提供有更豐富的讀寫功能。 文本文件的讀寫主要通過open()所構建的文件對象來實現。

創建文件對象

我們打開一個文件,并使用一個對象來表示該文件: 對象名 = open(文件名,模式) 最常用的模式有:

r 打開只讀文件,該文件必須存在。r+ 打開可讀寫的文件,該文件必須存在。w 打開只寫文件,若文件存在則文件長度清為0,即該文件內容會消失。若文件不存在則建立該文件。w+ 打開可讀寫文件,若文件存在則文件長度清為零,即該文件內容會消失。若文件不存在則建立該文件。a 以附加的方式打開只寫文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾,即文件原先的內容會被保留。a+ 以附加方式打開可讀寫的文件。若文件不存在,則會建立該文件,如果文件存在,寫入的數據會被加到文件尾后,即文件原先的內容會被保留。上述的形態字符串都可以再加一個b字符,如rb、w+b或ab+等組合,加入b 字符用來告訴函數庫打開的文件為二進制文件,而非純文字文件。

文件對象的方法

讀取:

content = f.read(N) # 讀取N bytes的數據content = f.readline() # 讀取一行content = f.readlines() # 讀取所有行,儲存在列表中,每個元素是一行。

寫入:

f.write('I like apple!/n') # 將'I like apple'寫入文件并換行

關閉文件:

f.close() # 不要忘記關閉文件

三、模塊

  我們之前看到了函數和對象。從本質上來說,它們都是為了更好的組織已經有的程序,以方便重復利用。

模塊(module)也是為了同樣的目的。在Python中,一個.py文件就構成一個模塊。通過模塊,你可以調用其它文件中的程序。

引入模塊

我們先寫一個first.py文件,內容如下:

def laugh(): print 'HaHaHaHa'

再寫一個second.py,并引入first中的程序:

import first #將first文件引入for i in range(10): first.laugh()

在second.py中,我們使用了first.py中定義的laugh()函數。

引入模塊后,可以通過 模塊.對象 的方式來調用引入模塊中的某個對象。上面例子中,first為引入的模塊,laugh()是我們所引入的對象。Python中還有其它的引入方式:

import a as b # 引入模塊a,并將模塊a重命名為b  from a import function1 # 從模塊a中引入function1對象。調用a中對象時,我們不用再說明模塊,即直接使用function1,而不是a.function1。 from a import * # 從模塊a中引入所有對象。調用a中對象時,我們不用再說明模塊,即直接使用對象,而不是a.對象。這些引用方式,可以方便后面的程序書寫。

搜索路徑

Python會在以下路徑中搜索它想要尋找的模塊:

程序所在的文件夾?操作系統環境變量PYTHONPATH所包含的路徑?標準庫的安裝路徑

如果你有自定義的模塊,或者下載的模塊,可以根據情況放在相應的路徑,以便Python可以找到。

模塊包

可以將功能相似的模塊放在同一個文件夾(比如說this_dir)中,構成一個模塊包。通過

import this_dir.module

引入this_dir文件夾中的module模塊。 該文件夾中必須包含一個 __init__.py 的文件,提醒Python,該文件夾為一個模塊包。__init__.py 可以是一個空文件。

四、函數的參數傳遞

包裹傳遞

在定義函數時,我們有時候并不知道調用的時候會傳遞多少個參數。這時候,包裹(packing)位置參數,或者包裹關鍵字參數,來進行參數傳遞,會非常有用。

下面是包裹位置傳遞的例子:

def func(*name): print type(name) print namefunc(1,4,6)func(5,6,7,1,2,3)

兩次調用,盡管參數個數不同,都基于同一個func定義。在func的參數表中,所有的參數被name收集,根據位置合并成一個元組(tuple),這就是包裹位置傳遞。 為了提醒Python參數,name是包裹位置傳遞所用的元組名,在定義func時,在name前加*號。

下面是包裹關鍵字傳遞的例子:

def func(**dict): print type(dict) print dictfunc(a=1,b=9)func(m=2,n=1,c=11)

與上面一個例子類似,dict是一個字典,收集所有的關鍵字,傳遞給函數func。為了提醒Python,參數dict是包裹關鍵字傳遞所用的字典,在dict前加 * *。 包裹傳遞的關鍵在于定義函數時,在相應元組或字典前加 * 或 * * 。

解包裹

* 和 **,也可以在調用的時候使用,即解包裹(unpacking), 下面為例:

def func(a,b,c): print a,b,cargs = (1,3,4)func(*args)

在這個例子中,所謂的解包裹,就是在傳遞tuple時,讓tuple的每一個元素對應一個位置參數。在調用func時使用 * ,是為了提醒Python:我想要把args拆成分散的三個元素,分別傳遞給a,b,c。(設想一下在調用func時,args前面沒有 * 會是什么后果?) 相應的,也存在對詞典的解包裹,使用相同的func定義,然后:

dict = {'a':1,'b':2,'c':3}func(**dict)

在傳遞詞典dict時,讓詞典的每個鍵值對作為一個關鍵字傳遞給func。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 那坡县| 吉林省| 新沂市| 伽师县| 上虞市| 台北市| 昔阳县| 兰坪| 平阳县| 无极县| 凤翔县| 洪泽县| 鄄城县| 滕州市| 如皋市| 钦州市| 台安县| 新绛县| 北海市| 信丰县| 略阳县| 高邮市| 潜江市| 鄂伦春自治旗| 琼结县| 襄汾县| 嘉峪关市| 资阳市| 广南县| 云南省| 仁化县| 天长市| 乐都县| 宁津县| 收藏| 大余县| 庆阳市| 资阳市| 鸡西市| 濮阳县| 安国市|