• python基础(1)


    1、基础数据类型set的介绍

      与dict,list,tuple相比,set,是一个不可有重复元素的,可修改,可循环,无序的集合。创建方式有两种

    a={1,21,3}
    b=set("ab")
    print(a,b)

      list,str,tuple都可以直接转为set,比如列表

    l=[1,2,3,1]
    s=set(l)
    print(s)

       在set里添加元素

    e=set()
    se.add(44)
    print(se)

      求a集合中存在但是b不存在的方法

    a={11,22,33}
    b={22,55}
    c=a.difference(b)
    print(c)
    {33, 11}

      求a集合中存在但是b不存在并更新自己的方法

    a={11,22,33}
    b={22,55}
    c=a.difference_update(b)
    print(c)
    print(a)
    None
    {33, 11}

      删除元素的方法有两种

    a={11,22,33}
    a.remove(22)
    a.discard(22)
    print(a)

      如果要求删除的元素在set没有,remove是会报错的,discard不会,pop为移除,可赋值给其他变量,删除则不行。

      取交集,以及取交集并且把交集更新成自己

    a={11,22,33}
    b={22,44,55}
    c=a.intersection(b)
    print(c)
    a.intersection_update(b)
    print(a)

    {22}
    {22}

      查看a是否是b的子序列,如果是,返回true否则fales

    a={11,22,33}
    b={22,44,55}
    c=a.issubset(b)
    print(c)
    False

      是否为父序列

    a={11,22,33}
    b={22,11}
    c=a.issuperset(b)
    print(c)
    True

       取对称并集

    a={11,22,33}
    b={22,11,44}
    c=a.symmetric_difference(b)
    print(c)
    {33, 44}

      更新一个新的集合

     

    a={11,22}
    b={44,55,66}
    a.update(b)
    print(a)
    {66, 11, 44, 22, 55}

     2、三元运算的使用result = 1 if 条件 else 2

    a="hello" if 1==1 else "world"
    print(a)
    hello

    3、深浅copy

      由于python内部优化的机制下,int和str无论深浅copy,他们的内存不变,对于字典,列表等,浅拷贝只能拷贝最外边一层,如果有嵌套这也可能会导致拷贝之后内存地址不同,深copy除了最后一层,其余完全copy。

    import copy
    a=["adc","fff",{"k":"v"}]
    b=copy.copy(a)
    print(a,b)
    print(id(a))
    print(id(b))
    
    ['adc', 'fff', {'k': 'v'}] ['adc', 'fff', {'k': 'v'}]
    18408456
    10636296

     4、函数

      在学习函数之前,一直遵循:面向过程编程,即:根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复制到现需功能处。

    def 函数名(参数):
           
        ...
        函数体
        ...
        返回值

      def:创建函数的关键字

      函数名:就是函数的名字 ,创建之后可以根据函数名调用函数

      函数体:函数的可执行程序

      参数:为函数提供具体的数据,分为形参和实参。

      返回值:函数执行完毕之后给调用者返回的数据。

      传参默认是按照顺序传,如果指定形式,比如形参=实参的方式,可以不按照顺序,

      函数可以有默认参数,有默认参数的话,默认参数一定要放在参数的尾部。

      函数动态参数使用方法一,可以穿任意个参数,

    def a(*b):
        print(b)
    a(123,456)
    (123, 456)

      二,接受字典类型数据参数

    def a(**b):
        print(b)
    a(c=123,b=456)
    {'c': 123, 'b': 456}

      直接将字典带入的接收方式为

    def f1(**args):
        print(args)
    dic={"k1":"v1","k2":"v2"}
    f1(**dic)
    {'k2': 'v2', 'k1': 'v1'}

       全局变量和局部变量的区别在于一个在全局生效,一个只是在自己代码块的程序里生效,如果要在局部修改全局变量,请加global

    a = 123
    def f1():
        global a
        a = 456
        print(a)
    f1()
    456
  • 相关阅读:
    html 底部虚线
    C# 写入二进制文件
    js document 触发按键事件
    python之工作举例:通过复制NC文件来造数据
    python之多线程举例
    python之发送HTML内容的邮件
    python之打印日志logging
    python之查询指定目录下的最新文件
    python之datetime类
    python之Counter类:计算序列中出现次数最多的元素
  • 原文地址:https://www.cnblogs.com/kading/p/5530831.html
Copyright © 2020-2023  润新知