python筆記007 函式

2022-09-10 15:54:29 字數 4178 閱讀 4067

1.檔案操作:

1.1獲得控制代碼:

f= open(『one.txt』,mode=』』,encoding=』utf-8』)

f= open(『../』) à返回上一層

f= open(『d:\test2\one.txt』,mode=』』,encoding=』utf-8』)

mode

= 『r』』w』』r+』』w+』』a+』』rb』』wb』』ab』』r+b』』w+b』』a+b』

(最常用的是

『r+』,)

如果用』b』open,open控制代碼不要寫encoding,其餘地方記得帶encoding。

seek(0,0) ß à seek(0) 游標在開頭

seek(0,2) 游標在結尾

游標 tell() à報告當前游標位置

truncate([size])à截斷檔案,如果有可選引數size,則表示截斷檔案為size個字元。如果沒有指定size,則從當前位置起截斷,截斷之後size後面的所有字元都被刪除。

去掉空格、換行(\n)

readline à 記憶體容易**

解決記憶體問題 :迴圈取 for line in f:

檔案操作控制代碼

importos#

方法一def

test10():

#開啟檔案,建立新檔案

with open("

day008/day_008_1.txt

",mode='

r',encoding='

utf-8

') as f1,\

open(

"day008/day_008_1_new.txt

",mode='

w',encoding='

utf-8

') as f2:

content =f1.read()

new_content = content.replace('

飛將','

李廣') #

替換內容

f2.write(new_content) #

寫到 f2 中

os.remove('

day008/day_008_1.txt

') #

刪除原檔案

os.rename('

day008/day_008_1_new.txt

','一生未封侯.txt

') #

#方法二

deftest11():

f1 = open("

day008/day_008_1.txt

", mode='

r', encoding='

utf-8')

f2 = open("

day008/day_008_1_new.txt

", mode='

w', encoding='

utf-8')

for line in f1: #

一行一行取

new_line = line.replace('

李廣','飛將'

) f2.write(new_line)

os.remove(

'day008/day_008_1.txt')

os.rename(

'day008/day_008_1_new

','李廣特點守')

f2.flush()

1

#氣泡排序

2 li = [12,23,3,6,5,34,16,37,2]

3 li1 =len(li)

4while li1>0:

5for i in range(li1 - 1):

6if li[i] > li[i + 1]:

7 l =li[i]

8 li[i] = li[i+1]

9 li[i+1] =l10#

li[i],li[i+1]=li[i+1],li[i]

11 li1 -=1

12print(li)

詳解參考菜鳥教程:
2.1  函式的概念:對**塊和功能的封裝、定義。先定義--> 呼叫;「函式」就像乙個程式內的小程式

2.2  函式的定義:

def 函式名() :

**塊 -- 函式體

函式的呼叫:

直接寫函式名

函式的乙個主要目的就是將需要多車執行的**放在一起。

返回乙個值

返回多個值,返回的是乙個(元組)。

2.3 函式的引數:

引數分類:

小結:

位置引數(按照順序,依次賦值)

關鍵字引數(只需要記住關鍵字,實參中給關鍵字賦值)

混合引數(位置引數必須在關鍵字引數的前面。)

·預設值引數:在函式宣告時,直接給出函式引數的預設值。在呼叫的時候預設值輸出這個值,也可以在實參上修改。

傳參:將實際引數傳給形式引數的過程。

當args與位置引數預設引數混用的情況下:(注意三者的順序)

示例一、(三者順序是:位置引數、預設引數、*args)

1

def foo(x,y=1,*args):

2pass

3 foo(1,2,3,4,5)#

其中的x為1,y=1的值被2替換,3,4,5都給args,即args=(3,4,5)

示例二、(三者順序是:位置引數、*args、預設引數)

1

def foo(x,*args,y=1):

2pass

3 foo(1,2,3,4,5)#

其中的x為1,2,3,4,5都給args,即args=(2,3,4,5),y始終為1

**kwargs: (表示的就是形參中按照關鍵字傳值把多餘的傳值以字典的方式呈現)。關於**kwargs與位置引數、*args、預設引數混著用的問題(注意順序)

位置引數、*args、**kwargs三者的順序必須是位置引數、*args、**kwargs,不然就會報錯;

例項:

1

def foo(x,*args,**kwargs):

2pass

3 foo(1,2,3,4,y=5,a=6,b=7)4#

其中的 x 為1 , 2、3、4都給args,即args=(2,3,4),y=5,a=6,b=7以字典形式傳給kwargs 即kwargs=

在python中有乙個值稱為 none,它表示沒有值。none 是 nonetype(空位元組)資料型別的唯一值(其他程式語言可能稱這個值為null,nil

或undefined)。就像布林值 true 和 false 一樣,none 必須大寫首字母。

如果你希望變數中儲存的東西不會與乙個真正的值混淆,這個沒有值的值就可能有用。有乙個使用none的地方就是print() 的返回值。print()函式在螢幕上顯示文字,但它不需要返回任何值,這和len() 或 input() 不同。但既然所有函式呼叫都需要求值為乙個返回值,那麼print() 就返回none.

1 >>>span = print

(『hello!』)

2hello!

3 >>>none =span

4 true

在幕後,對於所有沒有 return 語句的函式定義,python都會在末尾加上return none。這類似於 while 或 for 迴圈隱式地以 continue語句結尾。而且,如果使用不帶值的return 語句(也就是只有return關鍵字本身),那麼就返回none。

站在實參的角度:

位置引數

關鍵字引數

混合引數 (關鍵字引數放在位置引數後面)

站在形參的角度:

位置引數

預設值引數

預設值引數和位置引數混合使用。順序:先寫位置引數,在寫預設值引數。

python筆記 007 輸入和while迴圈

使用者輸入 使用input 獲取字串輸入 name input what s you name 暫停等待輸入 print hello,name 使用int 將字串轉化為數值 age input how old are you 暫停等待輸入 age int age print 18 age 求模運算子...

從0開始的Python學習007函式 函式柯里化

簡介 函式是可以重用的程式段。首先這段 有乙個名字,然後你可以在你的程式的任何地方使用這個名稱來呼叫這個程式段。這個就是函式呼叫,在之前的學習中我們已經使用了很多的內建函式像type range 通過關鍵字def定義函式 def 函式名 引數 塊乙個簡單的函式 def sayhello print ...

C 學習筆記(007) 陣列

一 陣列介紹 在單個變數中儲存同一種資料型別的多個資料項的乙個集合。c 的陣列的索引是從零開始的,陣列中的每乙個資料項都可以使用乙個整數索引來進行唯一標識 陣列中最後乙個元素的索引值要比陣列元素的的總數小1。二 陣列的宣告 1.一維陣列 語法 datatype variable 例如 string ...