Python學習筆記 DAY 3

2022-08-22 10:39:08 字數 4144 閱讀 5754

1.集合

集合是乙個無序的,不重複的資料組合,它的主要作用:

去重&&關係測試

list_1=set([1,3,5,7,9,4,6,])

list_2=set([2,4,5,6,8,10])

print

(list_1.union(list_2))

print

(list_1.difference(list_2) )

print

(list_1.issubset(list_2))

print

(list_1.issuperset(list_2))

print

(list_1.symmetric_difference(list_2))

print('

運算子操作')

print(list_1 |list_2)

print(list_1 &list_2)

print(list_1 -list_2)

print(list_1 ^list_2)

print('

增刪改查')

list_1.add(999)

list_1.update([11,12,13])

list_1.discard(11)

list_1.remove(12)

print(list_1)

2.檔案操作

基本操作

開啟檔案的模式有:

"+" 表示可以同時讀寫某個檔案

"u"表示在讀取時,可以將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用)

"b"表示處理二進位制檔案(如:ftp傳送上傳iso映象檔案,linux可忽略,windows處理二進位制檔案時需標註)

#

為了避免開啟檔案後忘記關閉,可以通過管理上下文,即:

with open(

'log

','r

') as f:

#如此方式,當with**塊執行完畢時,內部會自動關閉並釋放檔案資源。

#在python 2.7 後,with又支援同時對多個檔案的上下文進行管理,即:

with open(

'log1

') as obj1, open('

log2

') as obj2:

pass

#author alleyyu

fp = open('

characterlist.txt

','r+

',encoding='

utf-8')

raw_info=fp.read()

#print(raw_info)

#fp.write('this is the newinfo from python')##

for line in fp:

#print(line)

for index, line in

enumerate(fp.readlines()):

if index==3:

print('

it is line 3 here')

continue

print

(line)

#import sys ,time##

for i in range(20):

#sys.stdout.write('#')

#sys.stdout.flush()

#time.sleep(0.1)

fp.close()

3.字元編碼與轉碼

4.函式

函式是指將一組語句的集合通過乙個名字(函式名)封裝起來,要想執行這個函式,只需呼叫其函式名即可

特性:

減少重複**

使程式變的可擴充套件

使程式變得易維護

形參&實參

形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數

實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使引數獲得確定值

位置引數,關鍵字引數,不固定引數,預設引數

#

author alleyyu

#import sys,time

##print(sys.getdefaultencoding() )##

##def func():##

# time_format='%y-%m-%d %x'

## time_current=time.strptime(time_format)

#with open('characterlist.txt','a+') as f:

#f.write(' end as \n')##

#def test1():##

print ('this is test1')

#func()##

def test2():##

print('this is test2')

#func()

#return 0##

#def test3():

#print('this is test3')

#func()

#return 1, 'hello',[5,7,9]##

def test4(x,y,*args,**kargs):##

print(x,y,args,kargs)##

test1()

## test2()

## test3()

#test4(1,2,h=13,z=15)

#test4(1,2,5,h=13,z=15,j='help')

#test4(1,2,h=13,z=15,j='help')

區域性變數與全域性變數

在子程式中定義的變數稱為區域性變數,在程式的一開始定義的變數稱為全域性變數。

全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式。

當全域性變數與區域性變數同名時:

在定義區域性變數的子程式內,區域性變數起作用;在其它地方全域性變數起作用。

name='

alley

'school='

bupt

'def

test5():

name='

tongtong

'school='

kingdgarden

'print ('

func content

', name ,school)

print ('

global info

', name , school)

test5()

遞迴特性:

1. 必須有乙個明確的結束條件

2. 每次進入更深一層遞迴時,問題規模相比上次遞迴都應有所減少

3. 遞迴效率不高,遞迴層次過多會導致棧溢位(在計算機中,函式呼叫是通過棧(stack)這種資料結構實現的,每當進入乙個函式呼叫,棧就會加一層棧幀,每當函式返回,棧就會減一層棧幀。由於棧的大小不是無限的,所以,遞迴呼叫的次數過多,會導致棧溢位)

#

author alleyyu

defcacu(n):

print

(n)

if(int(n/2)>0):

cacu(n/2)

print

(n)def

cacu2(n):

print('

2:;;;;

',n)

if(int(n/2)>0):

return(cacu(n/2))

print('

2:;;;;;

',n)

cacu(10)

cacu2(10)

高階函式

變數可以指向函式,函式的引數能接收變數,那麼乙個函式就可以接收另乙個函式作為引數,這種函式就稱之為高階函式。

123

456def

add(x,y,f):

return f(x) +f(y)

res = add(3,-6,abs)

print(res)

內建函式

Python學習筆記DAY3 函式

關於函式,程式設計 少的了函式,python裡的函式呢,使用def 來定義,如下例子 def fun print 這是乙個函式 用def來定義,下面縮排的為函式體,呼叫的話直接呼叫函式名來實現。提到函式自然會想到引數,python裡的引數很靈活,很神奇。首先,引數是乙個變數,所以呢,元組自然是不能用...

Python基礎學習筆記 Day 3

程式有三種基本結構組成 1.順序結構 2.分支結構 3.迴圈結構 if 條件 語句 判斷使用者輸入數字的奇偶性 s eval input 請輸入乙個整數 if s 2 0 print 這是乙個偶數!print 您輸入的數是 s 判斷使用者輸入的數字的特性 s eval input 請輸入乙個整數 i...

Python小白學習筆記 day3

第三章 python基本資料型別 學習筆記 浮點數與整數,python浮點數運算存在 不確定尾數 問題,即兩個浮點數運算,有一定概率在運算結果後增加一些 不確定的 尾數。受限於計算機表示浮點數使用的儲存寬度,各程式語言共性問題,以前還真沒太在意 round x,d 為四捨五入函式,d為對x進行四捨五...