前端学python(4)

1.集合

# 使用 {} 来创建集合
# s = {10,3,5,1,2,1,2,3,1,1,1,1} # <class 'set'>
# print(s , type(s))    {1, 2, 3, 5, 10} <class 'set'>
# s = {[1,2,3],[4,6,7]} TypeError: unhashable type: 'list'
# 使用 set() 函数来创建集合
#s = set() # 空集合      这里注意!!!!s = {}这是创建空字典
# 可以通过set()来将序列和字典转换为集合
# s = set([1,2,3,4,5,1,1,2,3,4,5])       {1, 2, 3, 4, 5}
# s = set('hello')     {'o', 'l', 'h', 'e'}
# s = set({'a':1,'b':2,'c':3}) # 使用set()将字典转换为集合时,只会包含字典中的键    {'b', 'c', 'a'}
 
# 创建集合
# s = {'a' , 'b' , 1 , 2 , 3 , 1}
# 使用in和not in来检查集合中的元素
# print('c' in s)    False

# 使用len()来获取集合中元素的数量
# print(len(s))   5    会忽略到重复的哦

# add() 向集合中添加元素
# s.add(10)
# s.add(30)   {1, 2, 3, 10, 'b', 'a', 30}

# update() 将一个集合中的元素添加到当前集合中
#   update()可以传递序列或字典作为参数,字典只会使用键
# s2 = set('hello')
# s.update(s2)          {1, 2, 3, 'a', 'h', 'b', 'e', 'o', 'l'}
# s.update((10,20,30,40,50))   {1, 2, 3, 40, 10, 50, 'a', 20, 'b', 30}
# s.update({10:'ab',20:'bc',100:'cd',1000:'ef'})      {1, 2, 3, 100, 1000, 10, 'a', 20, 'b'}

# {1, 2, 3, 100, 40, 'o', 10, 1000, 'a', 'h', 'b', 'l', 20, 50, 'e', 30}
# pop()随机删除并返回一个集合中的元素
# result = s.pop()      随机删,不一定是第一个,看着是从前往后删除  pop返回值都是那个被删的值

# remove()删除集合中的指定元素
# s.remove(1)    {2, 3, 'b', 'a'}    如果没会报错哦
# s.remove(1000)

# clear()清空集合
# s.clear()    set()

# copy()对集合进行浅复制
# result = s.copy()     {1, 2, 3, 'a', 'b'}

2.集合运算

# 在对集合做运算时,不会影响原来的集合,而是返回一个运算结果
# 创建两个集合
s = {1,2,3,4,5}
s2 = {3,4,5,6,7}

# & 交集运算
result = s & s2 # {3, 4, 5}

# | 并集运算
result = s | s2 # {1,2,3,4,5,6,7}

# - 差集
result = s - s2 # {1, 2}

# ^ 异或集 获取只在一个集合中出现的元素
result = s ^ s2 # {1, 2, 6, 7}

# <= 检查一个集合是否是另一个集合的子集
# 如果a集合中的元素全部都在b集合中出现,那么a集合就是b集合的子集,b集合是a集合超集
a = {1,2,3}
b = {1,2,3,4,5}

result = a <= b # True
result = {1,2,3} <= {1,2,3} # True
result = {1,2,3,4,5} <= {1,2,3} # False

# < 检查一个集合是否是另一个集合的真子集
# 如果超集b中含有子集a中所有元素,并且b中还有a中没有的元素,则b就是a的真超集,a是b的真子集
result = {1,2,3} < {1,2,3} # False
result = {1,2,3} < {1,2,3,4,5} # True

# >= 检查一个集合是否是另一个的超集
# > 检查一个集合是否是另一个的真超集
print('result =',result)

3.函数 不定长参数

# 定义一个函数,可以求任意个数字的和
def sum(*nums):
    # 定义一个变量,来保存结果
    result = 0
    # 遍历元组,并将元组中的数进行累加
    for n in nums :
        result += n
    print(result)
sum(1,2)

# sum(123,456,789,10,20,30,40)

# 在定义函数时,可以在形参前边加上一个*,这样这个形参将会获取到所有的实参
# 它将会将所有的实参保存到一个元组中
# a,b,*c = (1,2,3,4,5,6)

# *a会接受所有的位置实参,并且会将这些实参统一保存到一个元组中(装包)
# def fn(*a):
#     print("a =",a,type(a))   a = (1, 2) <class 'tuple'>
# fn(1,2)

# fn(1,2,3,4,5)
# 带星号的形参只能有一个
# 带星号的参数,可以和其他参数配合使用
# 第一个参数给a,第二个参数给b,剩下的都保存到c的元组中
# def fn2(a,b,*c):
#     print('a =',a)  1
#     print('b =',b)  2 
#     print('c =',c)  (3, 3, 3)
# fn2(1,2,3,3,3)

# 可变参数不是必须写在最后,但是注意,带*的参数后的所有参数,必须以关键字参数的形式传递
# 第一个参数给a,剩下的位置参数给b的元组,c必须使用关键字参数
# def fn2(a,*b,c):
#     print('a =',a)   1
#     print('b =',b)  (2,2,2,3)
#     print('c =',c)    3
# fn2(1, 2, 2, 2, 3, c=3)

# 所有的位置参数都给a,b和c必须使用关键字参数
# def fn2(*a,b,c):
#     print('a =',a)   a = (1, 2, 3)
#     print('b =',b)    3
#     print('c =',c)    3
# fn2(1, 2, 3, b=3, c=3)

# 如果在形参的开头直接写一个*,则要求我们的所有的参数必须以关键字参数的形式传递
# def fn2(*,a,b,c):
#     print('a =',a)    3
#     print('b =',b)   4
#     print('c =',c)    5
# fn2(a=3,b=4,c=5)

# *形参只能接收位置参数,而不能接收关键字参数
# def fn3(*a) :
#     print('a =',a)    a = (1, 22, 3)
# fn3(1,22,3)
# **形参可以接收其他的关键字参数,它会将这些参数统一保存到一个字典中
#   字典的key就是参数的名字,字典的value就是参数的值
# **形参只能有一个,并且必须写在所有参数的最后
# def fn3(b,c,**a) :
#     print('a =',a,type(a))   a = {'d': 2, 'e': 10, 'f': 20} <class 'dict'
#     print('b =',b)      b = 1
#     print('c =',c)      c = 3
# fn3(b=1,d=2,c=3,e=10,f=20)

# 参数的解包(拆包)
# def fn4(a,b,c):
#     print('a =',a)  #10 
#     print('b =',b)   #20
#     print('c =',c)    #30
# # 创建一个元组
# t = (10,20,30)
# fn4(*t) 
# # 传递实参时,也可以在序列类型的参数前添加星号,这样他会自动将序列中的元素依次作为参数传递
# # 这里要求序列中元素的个数必须和形参的个数的一致
# # fn4(*t)    

# # 创建一个字典
# d = {'a':100,'b':200,'c':300}          100       200      300
# # 通过 **来对一个字典进行解包操作
# fn4(**d)

4.文档字符串

# help()是Python中的内置函数
# # 通过help()函数可以查询python中的函数的用法
# # 语法:help(函数对象)
# # help(print) # 获取print()函数的使用说明

# # 文档字符串(doc str)
# # 在定义函数时,可以在函数内部编写文档字符串,文档字符串就是函数的说明
# #   当我们编写了文档字符串时,就可以通过help()函数来查看函数的说明
# #   文档字符串非常简单,其实直接在函数的第一行写一个字符串就是文档字符串
# def fn(a:int,b:bool,c:str='hello') -> int:
#     '''
#     这是一个文档字符串的示例

#     函数的作用:。。。。。
#     函数的参数:
#         a,作用,类型,默认值。。。。
#         b,作用,类型,默认值。。。。
#         c,作用,类型,默认值。。。。
#     '''
#     return 10

# help(fn)  这是一个文档字符串的示例

#     函数的作用:。。。。。
#     函数的参数:
#         a,作用,类型,默认值。。。。
#         b,作用,类型,默认值。。。。
#         c,作用,类型,默认值。。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值