天天看點

Python學習week4-python的封裝與解構

1、python的封裝與解構

1.1、封裝

# 封裝是将預設一些操作封裝為某種資料結構;

  • 将多個值使用逗号分割,組合在一起;
  • 本質上傳回一個元組,隻是省略了小括号;
  • pyhton的文法特性,被其他語言借鑒;
t1=(1,2) # 定義元組
t2=1,2  # 将1和2封裝成元組      

1.2、解構

# 把線性資料的元素解開,并順序的指派給其他變量;

# 左邊接收的變量數要和右邊解開的元素個數一緻;

lst=[1,2,3]
a,b,c=lst
print(a,b,c) # ==> 1 2 3

a,b={'x':1,'y':2}
print(a,b) # ==> x y

# a,b={1,2,3} # 報錯too many values to unpack (expected 2)
# print(a,b)

[a,b]=1,2
print(a,b) # ==> 1 2

# 使用*變量名接收,但不能單獨使用
# 被*變量名接收後組成一個清單
lst=list(range(5))
a,*b,c=lst
print(a,b,c) # ==> 0 [1, 2, 3] 4      

1.3、丢棄變量

# 丢棄變量:是一個不成文的約定,并不是标準;如果不關心一個變量(或者不需要調用它)就可以定義該變量的名字為'_';

# '_'是一個合法的辨別符,也可以作為一個有效的變量使用;

lst=list(range(5))
a,*_,c=lst

print(a,c) # ==>0 4
print(_) # ==> [1, 2, 3]      

# 練習:實作冒泡和選擇排序(基本實作)

l=[1,9,8,5,6,7,4,3,22]
for i in range(len(l)):
    flag=False
    for j in range(len(l)-1):
        if l[j]>l[j+1]:
            l[j],l[j+1]=l[j+1],l[j]
            flag=True
    if not flag:
        break

print(l)

'''
運作結果:
[1, 3, 4, 5, 6, 7, 8, 9, 22]
'''      
for i in range(len(l)):
    maxindex=i
    for j in range(i+1,len(l)):
        if l[j] > l[maxindex]:
            maxindex=j
    if maxindex !=i:
        l[i],l[maxindex]=l[maxindex],l[i]

print(l)      

轉載于:https://www.cnblogs.com/soulgou123/p/9494315.html