2019/09/09 04-数字处理和列表等内存模型

在这里插入图片描述
字符串带单引号,双引号,三引号
数值,整数int,浮点数float,布尔值bool,complex复数
sequence序列对象,有顺序的:字符串 str,列表 list,tuple元组
键值对, 集合set ,字典dict(dictnartion)
数学结果对任何程序员都是必须的
在这里插入图片描述
class类,1整形,5.0浮点型,2+3j复数,都是对象即实例
在这里插入图片描述在这里插入图片描述
数学计算用的比较多,分虚数和实数在这里插入图片描述在这里插入图片描述
bulit-in属于内建函数
在这里插入图片描述
x只返回实部,x,y表示返回实部,虚部
在这里插入图片描述在这里插入图片描述在这里插入图片描述
导入模块math,floor地板,ceil天花板,你的数字在天花板和地板之间,你的数字往哪边跑,
floor向地板跑,ceil向天花板跑

在这里插入图片描述
如果是负数,floor是往下,更小,ceil上升,变大在这里插入图片描述在这里插入图片描述
实际上负数会带来一些问题,这个跟向上跑和向下跑没关系,这个是取整数部分
在这里插入图片描述
floor向下取整,ceil向上取整,int单纯整数取整
在这里插入图片描述
整除就是向下跑
在这里插入图片描述在这里插入图片描述
向上取整,向上取整都是借助math模块来做的在这里插入图片描述

取整是向下的
在这里插入图片描述
圆整,round
在这里插入图片描述
写在一起找规律,在这里插入图片描述
0.5的规律看看
跟.5相关的,13579都不出现了

在这里插入图片描述
下面这个是典型的四舍五入在这里插入图片描述
口诀:四舍六入五取偶,六入是代表比0.5大一点点(0.50001比如这样)在这里插入图片描述
记住四舍六入五取偶在这里插入图片描述在这里插入图片描述
round是四舍六入五取偶
math模块,floor,ceil明确告诉你向上取还是向下取

在这里插入图片描述
一个/代表自然除,。//代表整除,取整是向下取
在这里插入图片描述在这里插入图片描述在这里插入图片描述
最小值最大值
在这里插入图片描述
**查看帮助
iterable可迭代对象,*和传参相关
arg1代表参数,
**
在这里插入图片描述在这里插入图片描述
用传递参数的方法
在这里插入图片描述
不同类型就不能比大小,需要比就需要使用高阶函数,需要你去告诉怎么比在这里插入图片描述
表示谁的几次方
在这里插入图片描述
基本大家都用下面这种
在这里插入图片描述
开平方
在这里插入图片描述在这里插入图片描述在这里插入图片描述
bin二进制,oct 8进制,hex16进制
在这里插入图片描述在这里插入图片描述
返回的是字符串需要注意
在这里插入图片描述在这里插入图片描述
派的值
在这里插入图片描述在这里插入图片描述
对刚才的输出求类型
这个str上没有单引号,或者双引号
在这里插入图片描述
但是很疑惑str是个什么类型,就可以再嵌套一层type
是个class

在这里插入图片描述
可以这么写
在这里插入图片描述
也可以判断对象类型,所有对象都是类型在这里插入图片描述
数值类型是可以混加的,布尔型就是数值
如果不向float就丢东西了,因为float的精度要比整形要高
float是双精度的,比int的精度要高,都会向高精度转换

在这里插入图片描述
面试可能会问,精度这个东西,整形和float相加会如何,会问你为什么?
再python3种float是双精度的,按照一般语言的原则,精确度更高,都会向高精度转换
python2也有长整数和短整数,都是从短的向长的转,浮点数还分单精度和双精度,单精度向双精度转
在这里插入图片描述
隐式转换,一般指同样都是数值类型,,强弱一般判断是否要进行转换
obj对象,class_or_tuple在这里插入图片描述
现在这两个是等价的,一般用下面的判断什么类型,偶尔会用下面的
在这里插入图片描述在这里插入图片描述
都是内建函数经常使用的
也可以写元祖(),代表16是否下面类型中的某一个在这里插入图片描述在这里插入图片描述
isinstance是判断一个类型经常使用的东西,type作用很多在这里插入图片描述
列表是一个队伍sequence,是按照顺序排列的,站好队给你发号牌
在这里插入图片描述
要依次排序站好队,不能随意,说白了就是c语言的数组,在内存中确实也是有顺序的
在内存中假如你要放大的连续的数据,空间够,但是不连续,内存就需要去规整
python中做不到给大列表,在创建的时候并不会让你开辟一个大空间,要多少给你多少,写一个元素给一个,写两个元素给你两个,会帮你预估有多少个
在这里插入图片描述
既然是连续的就可以编号,称为索引,找2号,就可以从0开始偏移两个单位找,找起来非常迅速在这里插入图片描述
有序即可索引
在这里插入图片描述
一个挨一个称为线性

在这里插入图片描述
红色是重点,是可变的
在这里插入图片描述
列表,链表,队列queue,stack栈
列表是站好的队伍,有顺序可索引
(连续的空间里,元素一个挨一个排列的,有顺序,可以被索引)
链表是松散结构,不是站好的,(类似小盆友随便战,s型,t型都可以),更像是手拉手的概念
(在内存中是散落的,相当于在内存中建立关系,手拉手,从一个找到下一个,从下一个 找到上一个,是双向的,有顺序,在内存地址是不连续的)

在这里插入图片描述
链表
在这里插入图片描述
链表在内存中的表现,都是不连续的,但是链表是有顺序的知道下一个在哪里,但链表的顺序你在内存中感觉是散落的,不像列表连续地挨着的
链表也是可以索引的,找到头就可以找到下一个是谁了
在这里插入图片描述
列表是站好的队伍,有顺序可索引
(连续的空间里,元素一个挨一个排列的,有顺序,可以被索引)
链表是松散结构,不是站好的,(类似小盆友随便战,s型,t型都可以),更像是手拉手的概念
(在内存中是散落的,相当于在内存中建立关系,手拉手,从一个找到下一个,从下一个 找到上一个,是双向的,有顺序,在内存地址是不连续的)

这两个更多的是效率上的不同,列表要是找顺序的,只要偏移几个单位就可以得到,但是链表就不一样,需要从1号找到2号,2号找其他的

列表有个特点是可变的,如果前面第一个加元素,后面的元素都需要往后移,有10000个就往后移10000个
在这里插入图片描述
如果把2号删除,后面依次向前挤一个位置,这种操作非常慢,偏移需要每个单位一致,否则是没有什么用的
连续的坏处就是插入和删除麻烦点,查询也比较快,修改队伍就比较慢
在这里插入图片描述
链表,:比如一个3号小朋友出去,中间的关系就断掉了,2号4号手牵手就完事,不需要挪动队伍,只要链接就可以,如果新来一个小朋友,新进的下朋友和2号拉,和三号拉
查询比列表慢,插队就比较快,(插队也要先找小朋友再插队),唯一的好处是,如果链表插开头,中间找到就直接插入,找几下就搞定,还是需要找的
如果要拿一个小朋友出来,也需要找到哪个小朋友,重新建立拉手关系,
所以修改的代价小,查找比较慢
链表问题就是查的慢,修改方便
列表是差的快,修改麻烦,挪动整个列表的内存结果,是很麻烦的过程

面试也会问,链表和列表的区别:
列表是内存种连续的结构,链表是物理分布不连续,但是是有顺序的
然后可以举例回答
查询和插入都需要讲清楚

queue是对列,再计算机是专业术语
队列跟列表比较像,
queue先进先出(先进的必须先出,才能拿到后面的元素),
一般队列不能让你插队的,也不是让你遍历的(这些是列表做的)
(队列是让你拿元素,是第一个拿还是最后一个拿)
后进先出就是stack(必须了解)
(后进先出,典型的生活例子就是落盘子,不可能下面先拉出来,比如压子弹,先拉进去的,后面才能打出去)
最先压进去的数据,最后出来,
逻辑上有序,但是不是物理上有序

在这里插入图片描述
链表需要自己练,自己写单向链表还是双向列表
列表是必须掌握的数据结构
列表,有序,可索引,可变的,线性结构的
在这里插入图片描述在这里插入图片描述在这里插入图片描述
空列表[],list()在这里插入图片描述
range可迭代对象
在这里插入图片描述
range(5)可迭代对象交给list,list会把你可迭代对象,一个一个放到list去,类似for循环,把range的元素添加到列表里去在这里插入图片描述
单纯的是个对象
在这里插入图片描述
list+可迭代对象在这里插入图片描述
列表也是可迭代对象
在这里插入图片描述
列表不仅有顺序,可以索引,还可以迭代
(但是可迭代未必可索引,放在盒子里,如果按照顺序放,可以拿出来,但是也可以不按照顺序,也可以拿出来)

在这里插入图片描述
列表就是个容器,盒子,是有顺序的,在内存是连续的排序的,是个顺序结构,在这里插入图片描述
int对象不可迭代,5是个单独的值,是不可被迭代的在这里插入图片描述
这样写就可以在这里插入图片描述
不能再python中写以开定义固定长度什么的
顺序结构
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值