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)
1def 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、預設引數)
1def 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,不然就會報錯;
例項:
1def 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 ...