Python 基础学习二


学习视频:黑马程序员

函数

  组织好的,可重复使用的,用来实现特定功能的代码段

  关键字:def

  定义:

    def 函数名(传入参数):
        函数体
        return 返回值

  先定义,后使用

  没有使用return语句返回数据,函数其实也有返回值,是一个特殊的字面量:None,类型事<vlasss ‘Nonetype’>

  在 if 判断中,None 等同于 False

  函数的说明文档(注释)一般放在函数体之前

  函数内的局部变量在函数执行完后就被销毁了

  global 关键字,声明当前变量是全局变量 

 

数据容器

  list(列表)

    变量名 = [元素1,元素2,…,元素n]

    变量名=[ ]      变量名=list() 

    可以为不同的数据类型,支持嵌套

    可以用下标索引访问,从前往后从0开始,每次+1,  从后向前从-1开始,每次-1

    常用操作(方法):

       查找下表:list.index(元素)  #返回的是正向索引,不存在会报错

      修改指定下标的值:list[index] = 值

      插入:list.insert(下表, 元素)

      追加元素到尾部:

        单个:list.append(元素)

        一批:list.extend(其他数据容器),将其他数据容器的内容取出,一次追加到列表尾部

      删除元素:

        del list[index]

        list.pop(index)  取出元素,并删除  

        list.remove(元素)  删除某元素在列表中的第一个匹配项

        list.clear()  清空列表

      统计元素在列表中的数量

        list.count(元素)

      统计列表中全部元素数量

        len(list)

Python 基础学习二

  

  tuple(元组)

    元组一旦定义完成,就不可修改。可以看成一个只读的list

    变量名 = (元素,元素,……,元素)

    变量名 =  ( )

    变量名 = tuple()

    定义单个元素元组,在后面加个 ‘ , ‘ 区分,如:temp = (“hello” , )

Python 基础学习二

    当在元组中定义了一个list时,可以修改这个lsit的内容

  str(字符串)

    这里的字符串也是一个数据容器,也是不可修改的

    支持通过下标索引取值

    常用操作:

      查找元素下表:str.index(“value”)

      替换(这是得到一个新的字符串): new_str=str.replace(原字符串,新字符串)

      分割(返回一个列表,里面是多个字符串):list_str = str.split(分隔字符)

      规整:

        str.strip()  去除前后的空格和回车

        str.strip(str1)  去除前后的str1中包含的的所有字符

      计数:str.count(str1) str1出现的次数

      长度:len(str)

Python 基础学习二

  前面的列表、元组、字符串都是序列(内容连续、有序、支持下表索引),支持一个序列的常规操作——切片

  对序列切片操作不会影响序列本身,而是会得到一个新的序列

my_list = [0,1,2,3,5,6,8]
result1 = my_list[1:5]    #取第一个到第五个,步长为1,可以省略,步长为2:[1:5:2]

my_tuple = (0,1,2,4,5,8,9)
result2 = my_tuple[:]   #起始和结束表示从头到尾,步长为1,可以省略

print(result1)    
#[1, 2, 3, 5]

print(result2)
#(0, 1, 2, 4, 5, 8, 9)

    当步长为负数时,表示从后向前取,所以前面的两个数是先大的后小的

    要取到最后或者最前可以不写空着,如[6::-1],这就代表从第六个开始取,取到最前面这个。

  set(集合)

    不包含重复元素,是无序的,添加重复元素无效

    变量名 = {元素,元素,…,元素}

    变量名 = set()

    因为无序,所以不能通过下标索引访问,但是其允许修改

    常用操作:

      添加:set.add()

      移除:set.remove(指定元素)  #集合中没有会报错

      随机取出:set.pop()  #随机取出一个,集合中的就去除

      清空:set.clear()

      取两个集合的差集:set1.difference(set2)  取出set1有而set2没有的,返回一个新集合

      消除差集(只保留没有的):set1.difference_update(set2)  set2不变,set1删除和set2相同的元素

      合并集合:set1.union(set2)  返回一个新集合

      计数:len(set)

Python 基础学习二

 

  dict(字典、映射)

    变量名 = {key: value,key: value,……,key: value }

    变量名 = { }  #空字典,不是空集合

    变量名 = dict()  

    无序的,没有下标索引,只能通过key获取value

    key和value可以是任意类型(key不能为字典),可嵌套(value为字典)

    常用操作:

      新增(更新):dict[key] = value

      删除:dict.pop(key)  返回对应的value,同时在dict中删除

      清空:dict.clear()

      获取全部的key:dict.keys()

      for 遍历 得到的是 key

      计数:len(dict)

Python 基础学习二

  

  小结

Python 基础学习二

  数据容器的通用操作:

    统计元素个数:len(容器)

    最大元素:max(容器)  dict返回的是key

    最小元素:min(容器)

    类型转换:转列表 list(容器);转字符串 str(容器);转元组tuple(容器);转集合 set(容器)

      字典转换成其他的会丢失value,不能转换成字典

    排序:sorted(容器),排序后的结果是列表

       反向排序:sorted(容器, reverse=True)

Python 基础学习二

函数进阶

  多个返回值

def test_return():
    return 1,2

x,y = test_return()

#按照返回值的顺序,写对应顺序的多个变量接收即可
#变量之间用逗号隔开
#支持不同类型的数据return

    如果只是用一个值接收,会得到一个元组,其他情况少了就会报错。

  参数传递

    正常位置传参:在哪个位置就写那里

    关键字传参:键=值 方式  如 有参数 name,age  调用可以写 age=xx , name = xxx   顺序不影响

        和位置参数相互使用时,位置参数要在关键字参数前面

    缺省参数:可以设置一个默认值,必须放在最后面

    不定长参数(可变参数):*args

    关键字传递不定长:**kwargs  #kw 表示 key word

匿名函数

  函数作为参数传递:传递的时逻辑,不是数据

  lambda匿名函数:

    语法:lambda 传入参数 : 函数体(一行代码)

      lambda是关键字,表定义匿名函数

      传入参数表示匿名函数的形式参加,如:x , y 表示接受2个形式参数

      函数体,就是函数的执行逻辑,要注意:只能写一行,无法写多行代码

  函数当作参数传入,和直接在函数里面调用感觉没差,但是有了lambda后,就有很多操作空间了

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/python/279734.html

(0)
上一篇 2022年8月10日 20:52
下一篇 2022年8月10日 20:53

相关推荐

发表回复

登录后才能评论