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是全局变量才能内外都使用

python学习心得第三章的更多相关文章

  1. python学习心得第五章

    python学习心得第五章 1.冒泡排序: 冒泡是一种基础的算法,通过这算法可以将一堆值进行有效的排列,可以是从大到小,可以从小到大,条件是任意给出的. 冒泡的原理: 将需要比较的数(n个)有序的两个 ...

  2. python学习心得第四章

     python 学习心得第四章 1.lambda表达式 1:什么是lambda表达式 为了简化简单函数的代码,选择使用lambda表达式 上面两个函数的表达式虽然不一样,但是本质是一样的,并且lamb ...

  3. python学习笔记——第三章 串

    第三章 字符串学习 1.字符串不灵活, 它不能被分割符值 >>> format = "hello, %s. %s enough for ya?" >> ...

  4. Python学习笔记 ---第三章

    函数 函数是代码的一种抽象 函数 说明 abs 绝对值 max 最大值 hex 转换为16进制 强制数据类型转换 int('123') 123 int(12.35) 12 srt(100) '100' ...

  5. python学习心得(三)

    一,面向对象编程 1,类和实例, class Student(object):#括号里面的是继承的类 def __init__(self, name, score):初始化对象时,参数个数 self. ...

  6. Python学习系列----第三章 控制流

    在python中有三种控制流语句,分别是: if.for.while. 2.1 if 语句 if 语句用来检验一个条件,如果条件为真,我们运行一块语句(称为 if-块),否 则我们处理另外一块语句(称 ...

  7. python学习笔记第三章

    1.列表是由一系列特定顺序排列得元素组成,在python中用([])组成,列表得索引是从0开始,不是1 xu=['a','b',''c] print(xu) 访问列表的元素第一个元素 xu=['a', ...

  8. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  9. 我的MYSQL学习心得(三)

    原文:我的MYSQL学习心得(三) 我的MYSQL学习心得(三) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(四) 我的MYSQL学习心得(五) 我的MYSQL ...

随机推荐

  1. 【java】org.apache.commons.lang3功能示例

    org.apache.commons.lang3功能示例 package com.simple.test; import java.util.Date; import java.util.Iterat ...

  2. 单点登录SSO

    转载自 http://www.blogjava.net/xcp/archive/2010/04/13/318125.html   摘要:单点登录(SSO)的技术被越来越广泛地运用到各个领域的软件系统当 ...

  3. stanford NLP学习笔记3:最小编辑距离(Minimum Edit Distance)

    I. 最小编辑距离的定义 最小编辑距离旨在定义两个字符串之间的相似度(word similarity).定义相似度可以用于拼写纠错,计算生物学上的序列比对,机器翻译,信息提取,语音识别等. 编辑距离就 ...

  4. spring中订阅redis键值过期消息通知

    1.首先启用redis通知功能(ubuntu下操作):编辑/etc/redis/redis.conf文件,添加或启用以下内容(过期通知): notify-keyspace-events Ex 或者登陆 ...

  5. 《C#编程》

    第一天做C#,第一个C#.2016-11-11,周五 1.是用windowFormApp编程的代码. 2.下面是ConsoleApp编程的代码 例题1.主要是声明变量,1>使用变量,赋值语句 2 ...

  6. Python基础篇【第7篇】: 面向对象(2)

    上一篇<初识面向对象>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公 ...

  7. 使用VS2013逆向生成UML类图

    引自http://blog.csdn.net/funnyfu0101/article/details/7705173 首先.打开工程,[体系结构]->[新建关系图] 生成一个类图 然后[体系结构 ...

  8. SQL存储过程-新增和修改,参数Xml数据类型

    输入参数:xml数据类型  功能:新增和修改  --value() 方法从 XML 中检索 rogue 属性值.然后将该值分配给 int 变量. --将 Member 节点拆分成多行 SELECT T ...

  9. 串口 COM口 TTL RS-232 RS-485 区别 释疑

    Point: 1.串口.COM口是指的物理接口形式(硬件).而TTL.RS-232.RS-485是指的电平标准(电信号). 2.接设备的时候,一般只接GND RX TX.不会接Vcc或者+3.3v的电 ...

  10. [转载] COM 套间

    http://www.vckbase.com/index.php/wv/1315 简序 大学毕业前的最后一学期,在一家公司实习,当时的工作需要用到一些操作系统提供的组件.那时候只知道COM这个名词,并 ...