博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1、字典、表达式和语句(0530)
阅读量:5009 次
发布时间:2019-06-12

本文共 2792 字,大约阅读时间需要 9 分钟。

类:数据 + 方法

实例:

实例在初始化时,类必须要实例为对象,在初始化时由初始化过程来做赋值,因此类必须实例化成对象,

这些实例对象其内部的数据不同,所以它们才成为不同的实例。对实例内部的数据可以执行某些类型的操作,这些操作只能是附加在这些实例上的操作,这些操作是由类在内部定义的,所以方法可以理解成实例调用接口或支持的操作。

任何一种内置的对象或数据类型在实例化出来其对象时,这个对象就决定了其所能够支持的操作。

比如计算3 + 5 ,就相当于对3调用内置的方法3.__add__(5),因此任何一种对象所支持的操作,是属于这个对象所属类型的所支持的方法,如果类型不支持这种方法,则对象一定不支持这种操作。

 

列表和字典最为常用,是可变对象;

变量名和对象在内存中各存储一个位置,变量名是指向对象的引用,所以在python中变量名没有类型,对象才有类型;

点号运算符:.   对于对象而言

  • 属性:数据--在实例内部定义的所属于这个实例特定的变量名,变量名通常要指定一个对象,所以属性通常指向一个数据
  • 返回一个数据,显示则要使用print语句
  • 方法:操作()
  • 调用:执行一段代码

可调用对象:callable()      函数、类、对象中的方法

函数名也是一种变量名,可以直接调用,在python内部函数也是一种对象,属于可调用对象,在引用这个对象通常使用函数名进行的。

函数名也是标识,这段标识也指向了内存的一段空间, 在内存它存的是函数体:print "hello"

变量名不能以数字开头,变量名不加引号,但是字串必须加引号

 

list.reverse原处逆序,不会返回任何结果,

 

如何获取使用帮助:

获取对象支持使用得属性和方法:dir()

某方法的具体使用帮助:help(list.pop)

获取可调用对象的文档字串:print obj.__doc__

 

支持对象支持使用的属性和方法:dir()

查看某方法的具体帮助:help()

获取可调用对象的文档字串:print obj.__doc__


集合:一组无序排列的可哈希的值

支持集合关系测试:

成员关系测试:in、not in、迭代

不支持:索引、元素获取操作,切片

集合类型:set(),fronzenset()

没有特定语法格式,只能通过工厂函数(set,fronzenset)创建

set

支持迭代,所以内部set()要给出的是一个可迭代对象


集合类型的方法和操作

集合操作

 

pop

update

add

fronzenset


容器、类型、对象

1.列表,元素,字典可以跨行定义,最后一个允许使用逗号,但空是不允许使用逗号的

2.所有对象都有引用计数,可以使用sys.getrefcount查看引用次数,使用del删除一个计数引用

 

3.列表、字典都支持浅复制和深复制:深复制的方法可以使用copy模块中的deepcopy()实现

浅复制:创建一个新对象,但是包含的则是对原始对象所包含项的引用,因此指向同一个位置

深复制:创建一个新对象,并且递归复制它所包含的所有对象

4.python中的所有对象都是“第一类的”,这意味着使用标识符命名的所有对象具有相同状态,于是,能够命名所有对象都可以直接当书记进行处理

5.所有序列(所有非负整数的有序集合)都支持迭代

6.所有序列都支持的操作和方法:

s[i]、s[i:j]、s[i:j:stride]、len(s)、max(S)、sum(s)、all(S)、any(s)

s1 + s2:连接

s1 * n:重复

obj in s1:成员关系判断

obj not in s1

7.可变序列的操作

s1[index] = value:元素赋值

s1[i:j] =t :   切片赋值

del s1[index]:删除元素

del s1[i:j]       删除切片

del s1[i:j:stride]    删除扩展切片

 


python的表达式和语句

表达式: 是由一个或者操作数和零个以上的操作符组成的序列(1+2)

语句:用来实现的操作:声明变量、变量赋值、调用函数方法、循环访问、条件判断

 

python中的常用的表达式操作符:

1、算术运算

x * y ,x /y ,x+y,x-y,x//y,x%y

2、逻辑运算:

x or y, x and y, not x

3、成员关系运算:

x in y , x noy in y

4、对象实例测试

x is y ,x not is y

5、比较运算:

x < y,x > y, x <= y,x >= y,x == y,x != y

6、位运算:

x | y ,x & y, x ^ y, x << y,x >> y

7、一元运算:

-x,+x,~x

8、幂运算:

x ** y

9、索引和分片

x[i],x[i:j],x[i:j:stride]

10、调用

x(....)

11、取属性:

x.attribute

12、元组:(....)

13、序列:[...]

14、字典:{...}

15、三元选择表达式:x if y else z

16、匿名函数: lambda args:expression

17、生成器函数发送协议: yield x


运算优先级:(由高到低)

(....),[....],{.....}

s[i],s[i:j]

s.attribute

s(....)

+x,-x,~x

x**y

* ,/, //, %

+ ,—

<<, >>

&

^

|

<, <=, >, >=, ==, !=


对象实力测试优先级

  • is not is
  • in not in
  • not
  • and
  • or
  • lambda

语句:

  • 赋值语句:创建引用
  • 调用(函数和方法)
  • print:打印对象
  • if/elif/else:条件判断
  • for/else:序列迭代
  • while/else:普通循环
  • pass:占位符
  • break:
  • continue:
  • def:定义函数
  • return:返回值
  • yield:生成器函数
  • global:命名空间
  • raise:(手动)触发异常
  • import:导入
  • from:模块属性访问
  • class:类
  • try/except/finally:捕获异常
  • del:删除引用
  • assert:调试检查
  • with/as:环境管理器

赋值语句:

  • 隐式赋值:import,from,def,class,for,函数参数
  • 元组和列表分解赋值,当赋值符号(=)的左侧为元组或列表式,python会按照位置把右边的对象和左边的目标自左向右逐一进行配对,个数不同时会出异常,此时可以进行切片处理。

 

  • 多重目标赋值

 

  • 增强赋值:+=,-=,*=,/=,//=,%=

 

 

转载于:https://www.cnblogs.com/hanshanxiaoheshang/p/9333165.html

你可能感兴趣的文章
iOS10 app连接不上网络的问题
查看>>
结对开发之电梯调度最终稿(徐梦迪&刘博)
查看>>
simple java mail
查看>>
信息建模
查看>>
二进制中1的个数
查看>>
Android ListView 滚动时背景变黑色
查看>>
《机器学习》第一章 引言 笔记加总结
查看>>
每天一点点之vue框架开发 - 引入bootstrap
查看>>
【刷题】洛谷 P3806【模板】点分治1
查看>>
使用ffmpeg步骤
查看>>
RabbitMQ inequivalent arg 'durable' for exchange 'csExchange' in vhost '/': received
查看>>
《2017中国云计算评测报告》
查看>>
有木有兄弟在研究HTML5和css3啊?进来唠叨一下,分享一下你的资源
查看>>
Hibernate 中一对多和多对多映射
查看>>
EL表达式_详解
查看>>
Mybatis 数据库物理分页插件 PageHelper
查看>>
虚函数、纯虚函数详解
查看>>
z-stack中数据的发送,广播、组播、点对点
查看>>
Practial Vim 学习笔记一
查看>>
.NET中使用js实现百度搜索下拉提示效果[不是局部刷新,呜呜。。]
查看>>