2019-08-11

Task4

python基礎(chǔ)?

1.函數(shù)關(guān)鍵字

Python定義函數(shù)時(shí)使用 def 關(guān)鍵字

2.函數(shù)的定義

函數(shù)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段??梢宰约憾x一個(gè)函數(shù)。

 --函數(shù)-封裝了獨(dú)立功能,可以直接調(diào)用

 --函數(shù)名(參數(shù))

以下是簡單的定義規(guī)則:

函數(shù)代碼塊以 def 關(guān)鍵詞開頭,后接函數(shù)標(biāo)識(shí)符名稱和圓括號(hào)()。

任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間。圓括號(hào)之間可以用于定義參數(shù)。

函數(shù)的第一行語句可以選擇性地使用文檔字符串—用于存放函數(shù)說明。

函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。

return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

語法:

def functionname( parameters ):

? "函數(shù)_文檔字符串"

? function_suite

? ? return [expression]

案例:

#自定義函數(shù)

def function_name (str):

? ? "打印傳入的字符串"

? ? print(str)

? ? return(0);

#調(diào)用自定義函數(shù)

function_name("自定義函數(shù)")

function_name("調(diào)用自定義函數(shù)")

3.函數(shù)參數(shù)與作用域

函數(shù)參數(shù):

必選參數(shù)

默認(rèn)參數(shù)

可變參數(shù)

關(guān)鍵字參數(shù)

命名關(guān)鍵字參數(shù)

1)必選參數(shù)

必需參數(shù)須以正確的順序傳入函數(shù)。調(diào)用時(shí)的數(shù)量必須和聲明時(shí)的一樣。

def my_print(str):

? ? print(str)

? ? return

my_print() # 將會(huì) throw TypeError,因?yàn)楸剡x參數(shù),必須傳,若不傳將會(huì)拋異常。

2)默認(rèn)參數(shù)

調(diào)用函數(shù)時(shí),如果沒有傳遞參數(shù),則會(huì)使用默認(rèn)參數(shù)。需要注意,默認(rèn)參數(shù)必須指向不可變對象。若指向?yàn)榭勺儗ο?,將?huì)導(dǎo)致問題。

def my_print(str, age = 18):

? ? print('name: ', str)

? ? print('age: ', age)

? ? return

3)可變參數(shù)

一個(gè)函數(shù)能處理比當(dāng)初聲明時(shí)更多的參數(shù)。這些參數(shù)叫做不定長參數(shù)。

def my_print(arg1, *args):

? ? print("輸出:")

? ? print(arg1)

? ? print(args)

? ? return

my_print(1, 2, 3, 4)

輸出:

1

(2, 3, 4)

加了星號(hào) * 的參數(shù)會(huì)以元組(tuple)的形式導(dǎo)入,存放所有未命名的變量參數(shù)。

4)關(guān)鍵字參數(shù)

關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時(shí)參數(shù)的順序與聲明時(shí)不一致,Python 解釋器能夠用參數(shù)名匹配參數(shù)值。

def my_print(name, age):

? ? print('姓名:', name)

? ? print('年齡:', age)

my_print(age=18, name='小明')

def person(name, age, **kw):

? ? print('name:', name, 'age:', age, 'other:', kw) # kw會(huì)自動(dòng)將多個(gè)參數(shù),組裝成 dict

person('小明', 18, sex='female', school='南山小學(xué)')?

5)命名關(guān)鍵字參數(shù)

如果要限制關(guān)鍵字參數(shù)的名字,就可以用命名關(guān)鍵字參數(shù)。和關(guān)鍵字參數(shù)kw不同,命名關(guān)鍵字參數(shù)需要一個(gè)特殊分隔符,后面的參數(shù)被視為命名關(guān)鍵字參數(shù)。

def person(name, age, *, city, job):

? ? print(name, age, city, job)

person('小明', 18, city='深圳', job='程序員')

6)多參數(shù)組合

def f1(a, b, c=0, *args, **kw):

? ? print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):

? ? print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)

定義的順序必須是:必選參數(shù)、默認(rèn)參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和關(guān)鍵字參數(shù)。

作用域:

函數(shù)內(nèi)是一個(gè)作用域,(一般情況)外面是訪問不到的。當(dāng)進(jìn)入一個(gè)函數(shù)時(shí),一個(gè)新的作用域就被創(chuàng)建了。函數(shù)內(nèi)的x和外面的x不是一個(gè)x,x是不可變量。

函數(shù)里可以訪問外面的變量

函數(shù)里不可以修改外部定義的變量

4.函數(shù)返回值

1)函數(shù)返回值可以是任意的數(shù)據(jù)類型

2)如果有返回值:必須要用變量接收才會(huì)有效果

3)函數(shù)可以沒有返回值,默認(rèn)返回給None

其中函數(shù)的返回值為None有三種情況:

不寫返回值

只寫一個(gè)return

return None (幾乎不用)

4)return的作用:結(jié)束一個(gè)函數(shù)的執(zhí)行

5)函數(shù)的返回值不為None,有返回值

返回一個(gè)值(一個(gè)變量)

返回多個(gè)值(多個(gè)變量),多個(gè)值之間用逗號(hào)區(qū)分

接收:可以用一個(gè)變量接收,以元組的形式返回

例:

def move(x, y):

? ? return x, y

5.file

1)打開文件方式(讀寫兩種方式)

f = open('./task4_3.py', 'r')

print(f.read())

f.close()

with open('./task4_4.py', 'a') as f:

? ? f.write('tiancity')


2)文件對象的操作方法

file.open 關(guān)閉文件。關(guān)閉后文件不能再進(jìn)行讀寫操作。

file.read([size] 從文件讀取指定的字節(jié)數(shù),如果未給定或?yàn)樨?fù)則讀取所有。

file.readline 讀取整行,包括 “\n” 字符。

3)學(xué)習(xí)對excel及csv文件進(jìn)行操作

excel 讀操作

import xlrd

read

excel = xlrd.open_workbook('./user_info.xlsx')

sheet = excel.sheets()[0]

row = sheet.row_values(0)

讀取excel文件工作表中第1個(gè)工作簿的第1行第2列的數(shù)據(jù)

excel = xlrd.open_workbook('./user_info.xlsx')

sheet = excel.sheets()[0]

cell = sheet.cell(0, 1)

print(cell, type(cell))

cellValue = sheet.cell(0, 1).value

print(cellValue, type(cellValue)

循環(huán)遍歷

excel = xlrd.open_workbook('./user_info.xlsx')

sheet = excel.sheet_by_index(0)

for i in range(sheet.nrows):

? ? print(sheet.row_values(i))


excel 寫操作

import xlwt

write excel

excel = xlwt.Workbook()

sheet = excel.add_sheet("test1")

sheet.write(0, 1, 'tiancity')

excel.save('excel.xls')


6.os模塊

`os.sep:取代操作系統(tǒng)特定的路徑分隔符

os.name:指示你正在使用的工作平臺(tái)。比如對于Windows,它是’nt’,而對于Linux/Unix用戶,它是’posix’。

os.getcwd:得到當(dāng)前工作目錄,即當(dāng)前python腳本工作的目錄路徑。

os.getenv()和os.putenv:分別用來讀取和設(shè)置環(huán)境變量

os.listdir():返回指定目錄下的所有文件和目錄名

os.remove(file):刪除一個(gè)文件

os.stat(file):獲得文件屬性

os.chmod(file):修改文件權(quán)限和時(shí)間戳

os.mkdir(name):創(chuàng)建目錄

os.rmdir(name):刪除目錄

os.removedirs(r“c:\python”):刪除多個(gè)目錄

os.system():運(yùn)行shell命令

os.exit():終止當(dāng)前進(jìn)程

os.linesep:給出當(dāng)前平臺(tái)的行終止符。例如,Windows使用’\r\n’,Linux使用’\n’而Mac使用’\r’

os.path.split():返回一個(gè)路徑的目錄名和文件名

os.path.isfile()和os.path.isdir()分別檢驗(yàn)給出的路徑是一個(gè)目錄還是文件

os.path.existe():檢驗(yàn)給出的路徑是否真的存在

os.listdir(dirname):列出dirname下的目錄和文件

os.getcwd():獲得當(dāng)前工作目錄

os.curdir:返回當(dāng)前目錄(’.’)

os.chdir(dirname):改變工作目錄到dirname

os.path.isdir(name):判斷name是不是目錄,不是目錄就返回false

os.path.isfile(name):判斷name這個(gè)文件是否存在,不存在返回false

os.path.exists(name):判斷是否存在文件或目錄name

os.path.getsize(name):或得文件大小,如果name是目錄返回0L

os.path.abspath(name):獲得絕對路徑

os.path.isabs():判斷是否為絕對路徑

os.path.normpath(path):規(guī)范path字符串形式

os.path.split(name):分割文件名與目錄(事實(shí)上,如果你完全使用目錄,它也會(huì)將最后一個(gè)目錄作為文件名而分離,同時(shí)它不會(huì)判斷文件或目錄是否存在)

os.path.splitext():分離文件名和擴(kuò)展名

os.path.join(path,name):連接目錄與文件名或目錄

os.path.basename(path):返回文件名

os.path.dirname(path):返回文件路徑

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容