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

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

Python 語法摘要1

2019-11-14 12:03:09
字體:
來源:轉載
供稿:網友

一、詞典

  列表是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。


上一篇:3.5離散事件模擬

下一篇:jstl

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 余江县| 宁晋县| 改则县| 突泉县| 达州市| 揭阳市| 七台河市| 阳东县| 太仆寺旗| 富宁县| 杭锦后旗| 沙洋县| 泸水县| 北京市| 涟源市| 张掖市| 芒康县| 横峰县| 本溪市| 公主岭市| 宣恩县| 万安县| 花莲市| 华宁县| 烟台市| 忻州市| 雅江县| 平谷区| 金平| 剑阁县| 吴堡县| 中西区| 新民市| 乳源| 乌兰浩特市| 台前县| 牙克石市| 中阳县| 禹城市| 鄂尔多斯市| 南丰县|