• python学习心得第三章


    python学习心得第三章

    1.三元运算

    变量=值1 if 条件 else 值2

    由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量.

    2.数据类型

    集合:set()

    class set(object):
        """
        set() -> new empty set object
        set(iterable) -> new set object
        
        Build an unordered collection of unique elements.
        """
    

    set的赋值:

    集合是不重复元素且无序的数据类型。所以它没有索引,并且默认情况下{}是字典类型,里面只有加了元素以后才能判断是字典还是集合

    set()里面可以放入可迭代的对象,字符串,列表,元组

    set()的常用功能:

    添加 add:

    添加的时候如果是相同的元素 就无效,并且set的输出和dict一样是无序的

    清除 clear:

    different:两个集合里面不一样的元素选出来

    a.different(b):a里面有b里面没有

    b.different(a):b里面有a里面没有

    different_update:把原来的集合更新了,不在创造一个新的集合

    discard:移除选中的某个元素,如果元素不存在也不报错,但是remove就会报错,其它功能是一样的

    intersection:创造a与b中相同的元素组成的集合

    intersection_update:创造a与b中相同的元素组成的集合并且赋值个放在前面的集合

    isdisjoint:判断是否是不是相交的,如果不是就返回True否则返回False

    issubset:是否是子集

    issuperset:是否是父集

    pop():无序的拿出一个元素,并且返回一个值

    一般就拿set无序排列以后的第一个

    symmetric_different():对称交集,创建一个a和b集合不相同元素的集合

    symmetric_different_update():创建一个a和b集合不相同元素的集合,然后赋值给第一个集合

    union并集

    update:循环一个可iterable的对象,将里面的元素全部放在更新到集合里面,如果有重复的忽略

    3.数据类型在内存的储存方式

    1:字符串是一次性创建不能被修改,因为python是c写的,字符串其实就是字符数组,数组里面的内容是不能被修改的,所以字符串的操作每次都会创建一个新的字符串再内存里面

    2:list是动态创建的,创建的时候记录了上一次和下一次的地址位置,方便添加和删除元素,不会再在内存里面创建一个新的列表

    3:如果列表里面的元素字符串有变化,则是在内存里面创建了一个新的字符串,然后再让列表的索引指向这个新创建的字符串

    4.深浅copy

    我们使用深浅copy的时候先要导入copy这个模块

    1:对于字符串和数字,深浅copy都是一样的,copy以后的字符串和数字都是和原来的字符串和数字,公用一个id

    2:对于字典,列表,元组,进行深浅的时候有区别

    浅拷贝

    这里的复制其实是两个复制。浅拷贝,第一次复制了最外层的数据结构,然后在内存空间创建了一个这样的结构,同时在创建这样结构的时候,

    也复制了原来这个数据结构的指针,赋予给这个被创建的结构,所以他们只有最外层地址不同,内部地址是一样的

    深拷贝

    深拷贝就是全部复制然后重新全部创建在内存,所有的内外部都是新的地址

    注意深浅copy遇到字符串和数字时,内存地址都是一样的.python的优化所致,正常a=10,和b=10两个的地址是不一样的

    5.函数

    函数是为了减少我们编写程序的时候避免重复使用代码而产生的,通过在函数里面写代码,再调用函数,就可以在整个程序里面随时复制函数里面的代码

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

    1:def是函数的关键字

    2:函数名是程序员自己定义的

    3:函数体就是具体里面的代码

    4:执行完函数以后,会给返回以一个设定的值,如果没有设定就用默认none

    当程序遇到def liu():的时候不会执行里面的代码,只是知道有一个函数liu()在这里,当程序遇到liu()的时候就会返回def liu():里面去执行代码,当函数里面遇到return的时候函数不再往下执行

    而是返回return后面的值,没有return的时候返回none且函数会把里面的代码全部执行完,返回值为变量名()

    5:函数的参数

    当函数加上参数以后,函数里面的某些固定变量就可直接在外面更改

    函数里面有三种参数

    • 普通参数
    • 默认参数
    • 动态参数

    1:普通参数

    在def 函数名():括号里面的参数是形式参数,也就是形参

    在a=liu()括号里面的参数是实际参数也就是实参。

    2:默认参数

    当实参没有传值给形参的时候默认参数就会传值,并且默认参数只能放在最后

    3:动态参数

    实参传的值都已元组的形式保存下来

    在可迭代对象前面加一个*就把每一元素拿到元组里面去了。

    形参**args表示可以穿字典类型

    在字典前面加两个*直接把字典传进去

    6.全局变量

    在函数里面的变量是局部变量,它在函数里面的改变不会影响外面值得改变

    系统报错的原因在与函数里面的a是局部变量,不能在外面使用,只有声明一下a是全局变量才能内外都使用

  • 相关阅读:
    前端与后端的一些论述
    Pandas Cheat Sheet
    flask+socketio+echarts3 服务器监控程序(基于后端数据推送)
    【Java并发编程实战】-----“J.U.C”:ReentrantLock之一简介
    【Java并发编程实战】-----“J.U.C”:锁,lock
    【Java并发编程实战】-----synchronized
    【java并发编程实战】-----线程基本概念
    2015年读书系统
    阮一峰文集:《一个寻找作者的读者》
    进一步封装highchart,打造自己的图表插件:jHighChart.js
  • 原文地址:https://www.cnblogs.com/lyx958700392/p/5537230.html
Copyright © 2020-2023  润新知