1. 程式人生 > 實用技巧 >Python學習的第四次總結

Python學習的第四次總結

修改檔案內某行內容

f_read = open('檔名','r',encoding='utf-8')
f_write = open('檔名1','w',encoding='utf-8')
number = 0
for i in f_read :
number +=1
if number == 2 :
i = ' 被修改的內容\n '
f_write.write(i)
f_write.close()
f_read.close()

1、文字檔案裡存的字串 # a = str ( 字典名 )

2、轉成字典 b = eval ( a )

3、建立多個檔案物件

with open('
檔名','r',encoding='utf-8') as f , open('檔名1','r',encoding='utf-8') as f1: a = f.read() b = f1.read() print(a,b)

4、查詢所有的關鍵字

from  keyword  import kwlist
for i in kwlist:
    print(i)

5、身份運算子:is、is not

成員運算子:in、not in

6、' he \'s sad ' #轉譯字元\

7、repr(' ....\n..... ')#方便計算機閱讀,換行符\n不會被執行


深淺拷貝

s = [1,[2,3],4,5]
import copy
c = copy.copy(s)
d = copy.deepcopy(s)
s[1][0] = 7
print(s)    #[1, [7, 3], 4, 5]  淺拷貝會導致原列表發生改變
print(c)    #[1, [7, 3], 4, 5]  淺拷貝可以修改需要的內容
print(d)    #[1, [2, 3], 4, 5]  深拷貝不會修改原列表,能完整的反映原列表(克隆)


集合 set(引數只能為一個)

1、集合內的元素必須是可雜湊的,不可改變的(整形,字串,元組)

2、內容是無序的,不可重複的

3、set整體為可改變型別,故不能做成字典

4、set運用

a = set('lyzqyjdf')
print(a)  #{'8', '9', '3', '6', '1'}

b = ['ly','yzq','DD','ly','yzqqq']
c = set(b)
print(c)     #{'DD', 'yzqqq', 'yzq', 'ly'}

5、新增

a = set('lyzqylove')
a.add('3')
print(a)   #{'z', 'q', '3', 'y', 'v', 'e', 'o', 'l'} 
b = set('lyzqylove')
b.update('ops')  #{'e', 'q', 'o', 'l', 'v', 'z', 'y', 's', 'p'}
b.update(['1206','95'])  #{'z', 'o', 'y', 'v', 'l', '1206', '95', 'q', 'e'}
print(b)

6、刪除

b = set('lyzqylove')
b.remove('y') #{'z', 'e', 'v', 'l', 'q', 'o'}
b.pop()   #隨機刪除
b.clear()  #set()
del b   #從記憶體中刪除,並報錯
print(b)

7、等價

set(' lyyyyzqy ')== set('lyzq')

8、屬於

set('ly')< set('lyyzq')

9、聯合

a = set('ly')  or  set('lyzq')
print(a)     #{'l', 'y'}交集

a = set('ly')  and  set('lyzq')
print(a)       #{'y', 'q', 'l', 'z'}全集

10、其他

a = set('123')
b = set('124')
print(a.intersection(b))
print(a&b)                #{'1', '2'} 交集

a = set('123')
b = set('124')
print(a.union(b))
print(a|b)          #{'1', '3', '4', '2'}並集

a = set('123')
b = set('124')
print(a.difference(b))  #{'3'}  in a but not in b

print(a.symmetric_difference(b))
print(a^b)                #{'4', '3'}  雙向差集

a = set('123')
b = set('123456')
print(a.issuperset(b))  #False   判斷a是否為b的父級
print(a.issubset(b))    #True   判斷a是否為b的子級


函式(subroutine、procedure)

一、特點:

1、容易拓展

2、一致性、方便呼叫、減少程式碼量

二、函式格式:

def funtion_name() : #函式名命名和變數1命名要求基本一致

  內容

funtion_name() # 直接呼叫,一定要加括號

三、引數

1、必須引數

def add(x,y):    #x,y 為形參,不佔記憶體
    print(x+y)
add(3,5)     #3,5按順序分別對應x,y

取系統的時間

import time
time_format = '%Y-%m-%d %X'
time_current = time.strftime(time_format)
print(time_current)      #2020-07-28 12:04:40

2、關鍵字引數

def info(name,age):
    print('Name: %s'%name)
    print('Age: %s'%age)
info(name='LY',age='19')
Name: LY
Age: 19

3、預設引數(寫在最後面)

def info(name,age,gender='male'):
    print('Name: %s' % name)
    print('Age: %s'%age)
    print('gender:%s'%gender)
info('ly','19','female')    #  Name: ly  Age: 19 gender:female
info('yzq','19')    #Name: yzq  Age: 19  gender:male

4、高階版加法器(兩者使用的時候要居左、居右,不可混合使用)

def add(*args):
    sum = 0
    for i in args:
        sum += i
    print(sum)
    return sum
add(1,2,3,4,5)    #可以接收無窮多個值,多個值組成一個元組

def add(**kwargs):
    for i in kwargs:
        print('%s:%s'%(i,kwargs[i]))
add(lover='yzq',hobby='exile')   #任意輸入多個鍵值對,處理成字典

四、return

1、結束函式,返回某個新增的物件

2、若不加return,預設返回None

3、如果return後有多個物件,py會自動幫我們處理成元組

4、return後面的語句不會被執行

五、作用域

1、LEGB

x = int(8.9)   # bulit-in域
start = 0      # global域
def  out():
    o_count = 1    #encoding域
    def inner():
        i_count = 2   #local域
        print(i_count)
    inner()
out()

2、宣告作用域

count = 9
def f():
    global count    #宣告以下的count為global型別而不是encoding型別
    count = 0
    print(count)
f()


def f():
    i = 8
    def y():
        nonlocal i   #宣告i為nonlocal型別
        i = 7
        print(i)
    y()
f()

****終於總結完了,懶惰是魔鬼!loveyzqqqq~.~