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