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)功能的代碼段症见∥棺撸可以自己定義一個(gè)函數(shù)。

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

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

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

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

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

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

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

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

語(yǔ)法:

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ù)必須指向不可變對(duì)象审残。若指向?yàn)榭勺儗?duì)象,將會(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ù)叫做不定長(zhǎng)參數(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)文件對(duì)象的操作方法

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

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

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

3)學(xué)習(xí)對(duì)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)。比如對(duì)于Windows管呵,它是’nt’梳毙,而對(duì)于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):獲得絕對(duì)路徑

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

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)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铃肯,隨后出現(xiàn)的幾起案子患亿,更是在濱河造成了極大的恐慌,老刑警劉巖押逼,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件步藕,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡挑格,警方通過查閱死者的電腦和手機(jī)咙冗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恕齐,“玉大人乞娄,你說我怎么就攤上這事瞬逊∠云纾” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵确镊,是天一觀的道長(zhǎng)士骤。 經(jīng)常有香客問我,道長(zhǎng)蕾域,這世上最難降的妖魔是什么拷肌? 我笑而不...
    開封第一講書人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮旨巷,結(jié)果婚禮上巨缘,老公的妹妹穿的比我還像新娘。我一直安慰自己采呐,他們只是感情好若锁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斧吐,像睡著了一般又固。 火紅的嫁衣襯著肌膚如雪仲器。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評(píng)論 1 284
  • 那天仰冠,我揣著相機(jī)與錄音乏冀,去河邊找鬼。 笑死洋只,一個(gè)胖子當(dāng)著我的面吹牛辆沦,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播识虚,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼众辨,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了舷礼?” 一聲冷哼從身側(cè)響起鹃彻,我...
    開封第一講書人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妻献,沒想到半個(gè)月后蛛株,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡育拨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年谨履,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片熬丧。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡笋粟,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出析蝴,到底是詐尸還是另有隱情害捕,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布闷畸,位于F島的核電站尝盼,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏佑菩。R本人自食惡果不足惜盾沫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望殿漠。 院中可真熱鬧赴精,春花似錦、人聲如沸绞幌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至渐苏,卻和暖如春掀潮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背琼富。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來泰國(guó)打工仪吧, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人鞠眉。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓薯鼠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親械蹋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子出皇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344

推薦閱讀更多精彩內(nèi)容