even

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

1、公共方法

运算符

  +: 对数据进行合并(字符串,列表,元组)

  *:    对数据进行复制 (字符串,列表, 元组)

# + 运算符
# 字符串
str = "hello"
print(str + " world")  # hello world

# 列表
list = ["first", "second"]
print(list + ["third"]) # ['first', 'second', 'third']

# 元组
tp = ("first", )
print(tp + ("second",)) # ('first', 'second')

# * 运算符
str1 = 'ok'
print(str1 * 3)

list1 = ['first']
print(list1 * 3)

tp = ('first',)
print(tp * 3)

 判断操作符

  in:  判断元素是否存在(字符串,列表, 元组,字典,集合)

  not in: 判断元素是否不存在(字符串,列表,元组,字典, 集合)

str="this is test"
list = ["first", "second", "third", "fourth"]
tp = ("first", "second", "third", "fourth")
set={"first", "second", "third"}
map = {"name": "test", "age": 12}

# 字符串
print("is" in str)
print("ok" not in str)
# 列表
print("first" in list)
print("yes" not in list)
# 元组
print("first" in tp)
print("yes" not in tp)
# 集合
print("first" in set)
print("yes" not in set)
# 字典
print("name" in map)
print("sex" not in map)

 公共函数

     len():  计算容器中元素的个数

       del 或 del():   删除

       max(): 返回容器中元素的最大值

       min(): 返回容器中元素的最小值

       range(start, end, step):  生成从start 到end的数字, 步长为step, 供for循环使用

       enumerate(可遍历对象,start=0):  函数用于将一个可遍历的数据对象(如列表, 元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用于for循环当中, start表示开始的位置, start可省略,默认从0开始

str="this is test"
list = ["first", "second", "third", "fourth"]
tp = ("first", "second", "third", "fourth")
set={"first", "second", "third"}
map = {"name": "test", "age": 12}

print(len(str), len(list), len(tp), len(set), len(map))

# 删除操作
del str, list, map["name"]
print(str, list, map)

# 求最大值
print(max(1,2,3,4,5), max([5,6,7,8,9]))

# 求最小值
print(min(1,2,3,4,5), min([5,6,7,8,9]))


# 具体的示例见循环
print(type(range(1, 10, 1))) # <class 'range'>

data=enumerate('are you ok???')
print(data) # <enumerate object at 0x0000027D505386C0>
print(type(data)) # <class 'enumerate'>

for key, val in data:
    print(key, val)

容器的转换

   tuple(): 把某个序列转换成数组

        list(): 把某个序列转成列表

   set(): 把某个序列转成集合

 注意:把列表或者元组转成集合的时候具有去重的功能

 2、推导式

列表推导式的实现(注意:列表推导式的执行顺序是先执行前面再执行后面

# 常用的列表推导式
countList = [i for i in range(10)]
print(countList)  # 输出 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

countList1 = [i * 2 for i in (1, 2, 3, 4)]
print(countList1)  # [2, 4, 6, 8]

# 添加过滤器的列表推导式
countList2 = [i for i in range(10) if i > 5]
print(countList2)  # [6, 7, 8, 9]

# 多重循环推导式
countList3 = [(i, j) for i in (1, 2, 3) for j in (4, 5, 6)]
print(countList3)  # [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]

# 带有else的列表推导式
countList3 = [x if x > 5 else 0 for x in range(10)]
print(countList3)  # [0, 0, 0, 0, 0, 0, 6, 7, 8, 9]
# 注意如果有else需要写到前面,如果没有else那么if可以写后面

countList4 = [x for x in range(10) if x > 3 and x < 6]
print(countList4) # [4, 5]

# 生成矩阵
countList5 = [[y for x in range(3)] for y in range(3)]
print(countList5) # [[0, 0, 0], [1, 1, 1], [2, 2, 2]]

 字典推导式的实现

# 生成一个字典
dict1 = {i: i ** 2 for i in range(5)}
print(dict1)  # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

# 把两个列表合并成一个字典
list1 = ["name", "age", "gender"]
list2 = ["aaa", 12, "man"]

dict2 = {list1[i]: list2[i] for i in range(len(list1))}
print(dict2) # {'name': 'aaa', 'age': 12, 'gender': 'man'}

# 提取字典中的目标数据
counts = {'MBP': 268, 'HP': 125, 'XIAOMI': 300, 'DELL': 189, 'Lenovo': 199, 'acer': 78}
dict3={key: value for key, value in counts.items() if value > 200}
print(dict3) # {'MBP': 268, 'XIAOMI': 300}

 集合推导式的实现

list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

set1 = {x if x % 2 == 0 else 1 for x in list}
print(set1) # {1, 2, 4, 6, 8}
# 注意:集体具有去重的功能

  3、函数

快速入门

def getListByNum(num):
    return [x for x in range(num)]

print(getListByNum(3)) # [0, 1, 2]

print(getListByNum(10)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 函数文档

 查看函数的说明文档 help(***)      

def getListByNum(num):
    '''
    根据一个数值返回一个列表
    :param num:
    :return: 列表
    '''
    return [x for x in range(num)]

help(getListByNum)  # 会输出上成的注释,即函数的说明文档

作用域

在函数中,通常来讲使用的是函数内部的变量,如果函数内部没有定义,那么会自动访问到外部的变量,但是如果有重名,或者需要在函数内部对外部变量进行更改,那么就需要使用到关键字 global

count = 12

def testFunc():
    global count
    print(count)
    count = 10


testFunc()

print(count)

通过以上操作就会在函数内部更改了部变量的值(通常不建议在函数内部去更改外部变量的值,以上只是演示)

函数的多反回值

def testFunc():
    return 1,2,3

print(testFunc()) # (1, 2, 3)

如果存在上面的多返回值的情况,返回的数据类型是元组

函数传参

通常的函数调用采用的是位置传参,但python中还有一种叫关键字传参如下例子

def getUserInfo(name, age, gender=''):
    print(f"名字:{name}, 年龄:{age}, 性别:{gender}")


getUserInfo('小明', 12, '') # 以位置参数的方式进行调用

getUserInfo('小红', gender='', age=13) # 以关键字的传参方式进行传参

getUserInfo('小陈', age=11)  # 使用默认参数

注意:如果有位置传参与关键字传参一起使用,那么位置传参必需在前面,否则会报错

 函数的不定长参数

 不定长参数分成两种,一种是包裹位置参数, 另一种是包裹关键字参数

 包裹位置参数

def firstFn (*args):
    print(f'参数是({",".join(args)}), 类型是{type(args)}')


firstFn('a', 'b') # 参数是(a,b), 类型是<class 'tuple'>

包裹关键字

def secondFn(**kwargs):
    print(kwargs)


secondFn(name="aaa", age=12) # {'name': 'aaa', 'age': 12}

注意,前都接收的是元组,后者接收到的是字典

 4、拆包和交换变量的值

list = ["first", "second", "third"]
a, *b = list
print(a, b)  # 输出 first ['second', 'third']

obj = {"name": "aaa", "age": 12, "sex": "man"}
aa, *bb = obj
print(aa, bb) # name ['age', 'sex']

set1 = {'aaa', 'bbb'}
cc, dd = set1
print(cc,dd) # bbb aaa

如果是两个变量的值进行替换,传统的方法是再定义一个变量进行中转,但是python可以用以下方法简便处理

list=["first", "second"]
a,b=list
print(a, b) # first second

a,b=b,a
print(a, b)  # second first

 

 

 

 

 

posted on 2023-04-26 13:20  even_blogs  阅读(23)  评论(0编辑  收藏  举报