案例一:新建一個(gè)txt文件并向文件中寫(xiě)入數(shù)據(jù)。
創(chuàng)新互聯(lián)建站是專(zhuān)業(yè)的筠連網(wǎng)站建設(shè)公司,筠連接單;提供做網(wǎng)站、成都做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行筠連網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
代碼與結(jié)果如上圖所示。
案例:os.rename('kitty1.txt',''kitty2.txt')
2.1 輸出結(jié)果:將kitty1文件改為kitty2
2.2 文件解析說(shuō)明:文件重命名,將test1文件改為test2文件。
案例:os.remove('kitty2.txt')
3.1 輸出結(jié)果:kitty2.txt文件被刪除
3.2 解析說(shuō)明:刪除文件。
案例:os.mkdir('kitty')
4.1 輸出結(jié)果:創(chuàng)建一個(gè)文件夾名字為kitty
4.2 解析說(shuō)明:創(chuàng)建文件夾。
4.3 解析說(shuō)明:list.pop()就直接從list中的最末尾處刪除一個(gè)元素。
案例:os.rmdir('test')
5.1 輸出結(jié)果:刪除一個(gè)文件夾
5.3 解析說(shuō)明:刪除文件夾.
解析說(shuō)明:可以取代操作系統(tǒng)特定的路徑分割符
案例一:print(os.getcwd())
輸出結(jié)果:D:PythonProjectPython編程基礎(chǔ)
解析說(shuō)明:相當(dāng)于linux下的pwd,獲取當(dāng)前目錄。
案例一:os.chdir(os.getcwd()+os.sep+'kitty')
解析說(shuō)明:進(jìn)入到某個(gè)目錄下。
解析說(shuō)明:相當(dāng)于linux下的ls,顯示當(dāng)前目錄下的文件。
解析說(shuō)明:創(chuàng)建一個(gè)aa文件夾,再在里面創(chuàng)建一個(gè)bb文件夾。
解析說(shuō)明:刪除aa文件夾和aa文件夾中的bb文件夾。
解析說(shuō)明:判斷是否是個(gè)文件。
解析說(shuō)明:判斷是否是個(gè)文件夾。
解析說(shuō)明:判斷文件是否存在。
解析說(shuō)明:獲取文件大小。
解析說(shuō)明:返回文件的絕對(duì)路徑。
解析說(shuō)明:獲取文件的文件名,注意參數(shù)需要傳入絕對(duì)路徑。
解析說(shuō)明:獲取文件的所在目錄,注意參數(shù)需要傳入絕對(duì)路徑。
這里的知識(shí)點(diǎn)就是高階函數(shù)的定義: 一個(gè)函數(shù)可以作為參數(shù)傳給另外一個(gè)函數(shù),或者一個(gè)函數(shù)的返回值為另外一個(gè)函數(shù)(若返回值為該函數(shù)本身,則為遞歸),滿(mǎn)足其一則為高階函數(shù)。
temp = funX(8) 這里得到的是 funX這個(gè)外層函數(shù)的return funY 內(nèi)層函數(shù)
temp(5) 就是傳參5給得到的內(nèi)層funY
這里來(lái)給大家演示一下,函數(shù)的定義或構(gòu)造,并調(diào)用函數(shù)來(lái)實(shí)現(xiàn)封裝后的效果。
首先我們來(lái)看看想實(shí)現(xiàn)下面的這個(gè)效果,如果不使用函數(shù)應(yīng)該怎么實(shí)現(xiàn)。
以上兩種返回結(jié)果都是1-9這幾個(gè)數(shù)字。
以上兩種方法,第一種代碼重復(fù)率太高,代碼美觀效果太差,雖然能實(shí)現(xiàn)效果,但是因?yàn)閿?shù)量比較少,還能手工打出來(lái)這幾行代碼,如果是打印1-100000就很難實(shí)現(xiàn)了。這時(shí)候for循環(huán)還是可以實(shí)現(xiàn)的,但是for循環(huán)只能實(shí)現(xiàn)類(lèi)似的數(shù)字和變量循環(huán),無(wú)法進(jìn)行復(fù)雜的功能開(kāi)發(fā)。鑒于此,函數(shù)這個(gè)概念就被python引入了,下面先來(lái)看看函數(shù)是怎么實(shí)現(xiàn)上面的效果的,還是兩種方法。
這時(shí)候如果想實(shí)現(xiàn)上面的打印結(jié)果就直接使用函數(shù)名+小括號(hào)調(diào)用函數(shù)就可以了,這種類(lèi)型的語(yǔ)法,不僅可以反復(fù)使用,而且封裝后的代碼更美觀。
要點(diǎn):input輸入的內(nèi)容為字符串。
.isdigit用于判定輸入的字符串中的字符是否為數(shù)值型字符,注意是“數(shù)值型字符”,仍然是字符串。因此想要與數(shù)值1、2、3進(jìn)行比較,必須加步int(instr),將字符串轉(zhuǎn)換為數(shù)值。這就解釋了你的第2第3個(gè)問(wèn)題,再看一下第一個(gè)問(wèn)題:刪掉該段后,instr是原始的輸入的字符串,與數(shù)值1或2進(jìn)行相等比較,返回值為False,不運(yùn)行if內(nèi)的語(yǔ)句,直接返回while循環(huán)。
Python函數(shù):
函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一或相關(guān)聯(lián)功能的代碼段。
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。已經(jīng)知道Python提供了許多內(nèi)建函數(shù),比如print()。但也可以自己創(chuàng)建函數(shù),這被叫做用戶(hù)自定義函數(shù)。
函數(shù)調(diào)用:
定義一個(gè)函數(shù)只給了函數(shù)一個(gè)名稱(chēng),指定了函數(shù)里包含的參數(shù),和代碼塊結(jié)構(gòu)。
這個(gè)函數(shù)的基本結(jié)構(gòu)完成以后,可以通過(guò)另一個(gè)函數(shù)調(diào)用執(zhí)行,也可以直接從Python提示符執(zhí)行。
==================================
將列表傳遞給函數(shù)后,函數(shù)就能直接訪問(wèn)其內(nèi)容
假設(shè)有一個(gè)用戶(hù)列表,要問(wèn)候其中的每位用戶(hù)
將列表傳遞給函數(shù)后,函數(shù)就可對(duì)其進(jìn)行修改,在函數(shù)中對(duì)這個(gè)列表所做的任何修改都是永久性的
一家為用戶(hù)提交的設(shè)計(jì)制作3D打印模型的公司,需要打印的設(shè)計(jì)存儲(chǔ)在一個(gè)列表中,打印后轉(zhuǎn)移到另一個(gè)列表中。
有時(shí)候需要禁止函數(shù)修改列表,為解決這個(gè)問(wèn)題,可想向函數(shù)傳遞列表的副本而不是元件;這樣函數(shù)所做的任何修改都只影響副本,不影響元件
有時(shí)候,預(yù)先布置的函數(shù)需要接受多少個(gè)實(shí)參,python允許函數(shù)從調(diào)用語(yǔ)句中手機(jī)任意數(shù)量的實(shí)參
一個(gè)制作披薩的寒素,它需要接受很多配料,但無(wú)法確定顧客要多少種配料,下面函數(shù)只有一個(gè)形參*toppings,不管調(diào)用語(yǔ)句提供了多少實(shí)參,這個(gè)形參都將他們統(tǒng)統(tǒng)收入囊中
如果要讓函數(shù)接受不同類(lèi)型的實(shí)參,必須在函數(shù)定義中將接納任意數(shù)量實(shí)參的形參放在最后
python先匹配位置實(shí)參和關(guān)鍵字實(shí)參,再將余下的實(shí)參收集到最后一個(gè)形參中
如果前邊的函數(shù)還需要一個(gè)表示披薩尺寸的實(shí)參,必須將該形參放在*toppings的前面
有時(shí)候,需要接受任意數(shù)量的實(shí)參,但預(yù)先不知道傳遞給函數(shù)的會(huì)是射門(mén)楊的信息,再這種情況下,可將函數(shù)編寫(xiě)成能夠接受任意數(shù)量的鍵-值對(duì),調(diào)用語(yǔ)句提供了多少就接受多少
創(chuàng)建用戶(hù)簡(jiǎn)介:你知道你將收到有關(guān)用戶(hù)的信息,但不確定會(huì)是什么樣的信息,在下面示例中,build_profile()接受名和姓,同時(shí)還接受任意數(shù)量的關(guān)鍵字實(shí)參