python中的对象和类型

在python中,认为系统中的每一个“东西”都是一个对象,在python中,“对象”有着特殊的意义,python中的对象有:

一个标识

一些属性

零个或多个名称

当python创建对象时,它接收到一个标识号,可以使用id函数,查找它的ID号,python用这个数字将一个对象和其他对象区分开。除了ID号,对象还有一个或者多个名字,名字不是对象ID的一部分,使用名字是为了提高对象的可读性。python使用命名空间(每当创建新变量时,它被放入列表中,并与一个值关联。如果表中已经存在相同的变量名,则更新与它关联的值)来关联名字。最后每个对象有与之相关联的属性。属性本质上是一些关于对象的信息。

aInt=7

id(aInt)

type(aInt)

bFloat=2.5

id(bFloat)

type(bFloat)

aInt=bFloat

type(aInt) ---aInt is now of type float

id(aInt)

---aInt’s now has the same ID as bFloat

会发现对象的类型与名字无关,相反它只指定与它相关联的对象,aInt=bFloat将这两个名称关联到同一个对象上。

-----------------------------------------

数字:

整数:不同的前缀代表不同的进制,例如0代表8进制,0x代表16进制

浮点数(加上前缀例如0是没有意义的):浮点数是一个近似值,不是精确值,对浮点数进行运算所得到的结果也是近似值。整数是精确值,整数运算得到的也是精确值。

集合:set([1,2,3])

由于类型信息不实变量的一部分,在变量名字前面加上类型作为前缀,对于跟踪类型是有用的,例如intVar,myInt

每种类型都有相关联的构造函数,构造函数的名称就是类型名称(int,float,str…)。新航道雅思培训如果圆括号内没有给出值,则为该类型的默认值(str的默认值是‘

’),如果构造函数的括号中出现新的值,就将这个值转为指定类型的新对象(原对象本身不受影响,进行转换后返回新的对象)。

任何时候输入“help(对象名)”,Python将提供该对象的帮助信息

###两种相等

python中:

==检查两个名称引用的对象是否具有相同的值

is检查两个名字是否引用同一个对象(具有相同的ID,通过id即可获取ID信息)

多重赋值,交换两个变量的值:

aInt,bInt=bInt,aInt

python中的缩进,因为缩进代表代码的结构。常见的方式是使用4个空格,这与缩进等价。需要注意的是不要混淆制表符和空格,在python中请使用空格。

while与break,continue的结合:使用break是为了跳出while循环体,使用continue是为了跳过while循环体剩下的部门,直接进行下一次循环的判断

--------------------

常见函数:

raw_input():输入,返回的是一个字符串类型

random模块中的random.randint(0,100)随机数函数,生成0到100的一个随机数

range函数,生成数字序列(集合),range(start,end,stepLength)

例子:

------------------------------------------

-----------字符串----------------------------

(1)

字符串类型是python提供的数据集类型之一,数据集类型是由一组python对象构成的单个对象。

一种构造方式是通过字符串构造函数str,另一种方式是通过两个单引号‘’或两个双引号“”

三重引号字符串:如果字符串跨行,行与行之间的回车符也将被保存下来。采用三重引号字符串会将整个段落作为单个字符串进行处理,包含段落中的格式信息。

longStr2=“when you’re chewing on life’s gristle

Don’t grumble, give a

whistle”

print longStr2

上述就将报错,因为“”不具有跨行保存的功能

制表符 \t

回车符 \n

(2)

字符序列

字符串对象定义为字符序列,字符在字符串中的问题称为索引,python用[]表示索引运算符

如果想从末端建立索引,从-1开始计数,例如-1表示字符串最后一个字符,-2表示字符串倒数第二个字符

索引与分片

Str[start,end]:会截取字符串Str的第start个位置到第end-1个位置的元素(左开右闭区间)

helloString[6 :]:表示第六个到末尾

helloString[: 5]:表示起点到第4个

例子:

(3)字符串的格式化打印

(4)迭代器

由于经常要检查索引和字符,因此python提供了enumerate迭代器,实现查找字符对应的索引和字符本身的功能

将两个值放在一个元组中:

(5)处理字符串

在空格处分割方法的调用:split(” “)

在每一个逗号处分割的方法调用:split(“,”)

默认采用空格进行分割,所依一般都使用不带参数的split方法

记住,字符串是不可改变的,所以不能从字面上删除原始字符串的任何部分,托福考多少分相反,split只产生部分副本。

结果:

从上面可以观察看出,split方法将一个字符串变为一个序列进行输出,而不再是字符串

回文:

回文串的特点是前向读取和后向读取得到相同的内容

例子:

------------------------------------------------

-------------------函数---------------------------

函数定义由关键字def开始。Python中函数定义的方式类似于赋值语句。执行def语句,在命名空间中创建新的名字和与名字相关联的新对象(函数对象)。Python中所有东西都是对象,函数也不例外(函数必须在调用前先定义)。如果不为函数提供return语句,在默认情况下,将返回一个特殊的Python值None,它代表没有值,也是一种无限值,可以将一个变量和返回值None关联起来并打印验证(一般格式化输出喜欢用一个函数封装起来)。

例如:

open()函数:两个字符串参数,第一个字符串参数是文件的名称,第二个参数是指出对文件进行什么操作(“r”是读操作,“w”是写操作)并创建文件句柄。文件句柄是与文件内容相关联的对象,可以用文件句柄遍历文件内容

strip(str)函数用于删除字符串开头和结尾的指定字符,例如strip(“.,”)则删除开头和结尾的”,”与”.”

例子:

-----------------------------------------------

----------------------列表和元组--------------------

可以使用构造函数或者方括号[]来构造列表

使用构造函数创建列表需要注意:参数必须是一个集合,雅思查分参数集合中的每个元素都将添加到列表中

同字符串一样,列表也是序列类型,但是也有不同点,主要在如下两方面:

(1)列表可以包含任意类型的元素,甚至不同类型的元素也可以混在同一列表中

(2)列表是可变类型,意味着在创建列表对象后,还能发生变化

列表类型也拥有只作用于列表类型的方法:

(1)不修改列表的方法:

index(x):返回列表中与x相等的第一个元素的索引

count(x):返回列表中x出现的次数

(2)修改列表的方法:

append(x):在列表的尾部添加元素,列表的长度加1

pop():删除列表末尾的元素,并返回此元素

extend(C):需要一个集合作为参数。将此参数集合中的每个元素添加到列表的末尾,从而扩展列表。

insert(i,x):在指定位置i插入元素x

remove(x):删除列表中第一个值为x的元素

sort():对序列中的元素进行排序

reverse():将列表中的元素反向

例如:

结果:

序列的方法会直接在对象上进行分割。不同于字符串方法一般具有返回值,由于序列的可变性,方法可以直接对序列进行修改,因此方法并不需要具有返回值

----使用join方法在列表和字符串之间转换---

场景:常常需要通过split从字符串中取出一部分,处理片中的元素,然后再把处理结果放回去。对于这种情况,一种有效方式是采用字符串的join方法。

例如调用:”.”.join([“a”,”b”,”c”]),用冒号(:)作为分隔符,连接所有字符,生成字符串”a:b:c”

sorted函数(注意,不是方法),可以对任意集合类型进行排序,会转化为列表再进行排序

sorted函数原理:(1)使用list构造器将字符串转为字符列表(2)对列表排序

若想变回字符串再使用join方法进行合并

——————–可变对象及引用—————————

当两个名字引用同一个可变对象时,会发生一些有趣的事情。

对list1做的改变也会影响list2,因为两个名字都引用了同一个列表(可变对象)

如果想复制列表,可以使用字符串复制分片[:](从头到尾复制)。明确的说,石家庄雅思创建副本意味着Python将创建一个新的对象副本,因此这种修改不会影响其他对象,同样,is运算符显示这些名字没有引用同一对象,所以得到的结果是假。

可变与不可变:

当变量引用不可变对象时,使用该对象的任何操作(连接,替换,去除等)等将创建新对象,而不会改变引用的对象。与此相反,变量引用可变对象时,或者可能创建新的对象,或者改变被引用对象的本身,这取决于进行的是何种操作。例如:

得到的结果都是[1,2,3,9]。然而,前者创建一个新对象,后者却没有。

深拷贝与浅拷贝

Python中对象的赋值都是进行对象引用(内存地址)传递

使用copy.copy(),可以进行对象的浅拷贝,它复制了对象,但对于对象中的元素,依然使用原始的引用.

需要导入copy模块:

如果需要复制一个容器对象,以及它里面的所有元素(包含元素的子元素),可以使用copy.deepcopy()进行深拷贝

对于非容器类型(如数字、字符串、和其他’原子’类型的对象)没有被拷贝一说

-----未完待续

python自定义函数复制字符串_Python学习笔记摘要(一)类型 字符串 函数 列表 深浅拷贝...相关推荐

  1. python形式参数和实际参数_python学习笔记3:函数和参数

    函数 函数的参数和返回值 形参(形式参数): 在函数定义的时候用到的参数没有具体值,只是一个占位的符号,成为形参,下例中的peison 实参(实际参数): 在调用函数的时候输入的值:下例中的明月 de ...

  2. python定义变量字符串_Python学习笔记二(变量和字符串)

    2017年年终确定的从2018年开始学习一门新的语言.随着机器学习人工智能的日渐深入,是时候有必要掌握以下Python了.博客今天更新第二篇学习记录,关于Python的变量和变量中字符串的使用,所有学 ...

  3. python内建函数测试对象身份_python 学习笔记day03-python基础、python对象、数字、函数...

    python基础 语句和语法 注释及续行 首要说明的是:尽管python可读性最好的语言之一,这并不意味者程序员在代码中就可以不写注释 和很多UNIX脚本类似,python注释语句从#字符开始 注释可 ...

  4. python用函数绘制椭圆_Python学习笔记——opencv绘制椭圆

    在Python环境下使用opencv绘制椭圆,需要用到cv2.ellipse() 函数. 下面一段示例程序就是用该函数在黑色背景下,绘制一个圆心在(260,240).长轴170.短轴130.线宽为3的 ...

  5. python编程16章教程_Python学习笔记__16.2章 TCP编程

    # 这是学习廖雪峰老师python教程的学习笔记 Socket是网络编程的一个抽象概念.通常我们用一个Socket表示"打开了一个网络链接",而打开一个Socket需要知道目标计算 ...

  6. python写完程序保存_Python学习笔记——文件处理

    1.文件路径 1.1 不同系统环境下的路径 1.2 当前工作目录 1.3 绝对路径和相对路径 1.4 新建文件夹-- os.makedirs() 2.文件的读写 2.1 打开文件 2.2 读写文件 3 ...

  7. python里while的用法_Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...

  8. python内建函数测试对象身份_Python学习笔记 03 Python对象

    1.Python对象 Python对象都拥有三个特性:身份.类型和值. 身份:每一个对象都有一个唯一的身份标识自己,任何对象的身份都可以使用内建函数id()来得到.这个值可以被认为是该对象的内存地址. ...

  9. python中while的用法_Python学习笔记之While循环用法分析

    本文实例讲述了Python学习笔记之While循环用法.分享给大家供大家参考,具体如下: 前面一篇<Python学习笔记之For循环用法>详细介绍了Python for循环,这里再来讲述一 ...

最新文章

  1. 深入思考编译原理之 理解执行过程和编译过程
  2. (iOS)sqlcipher和FMDB的使用总结(原创)
  3. go get安装第三方包的前提条件和步骤
  4. 【翻译】在Ext JS应用程序中构建可维护的控制器
  5. 浏览器停止加载页面内容
  6. 全栈语音交互方案免费开放,这次扔开源炸弹的是Rokid
  7. java调用通用对话框,利用Java Swing设计通用对话框
  8. 拓端tecdat|stata对包含协变量的模型进行缺失值多重插补分析
  9. Sql Server之旅——第十三站 对锁的初步认识
  10. Vue写的一个网站项目
  11. AlphaGo 引发的中国象棋之路
  12. 什么是微信62数据?微信62数据原理解读
  13. Matlab 中类的定义
  14. 射频信号处理知识点点滴滴
  15. 华信短信平台接口文档
  16. 可口可乐和百事可乐查出杀虫剂成分!
  17. 收银机打印数据截取_每天在掏空你账户余额的收银机,你知道它的历史吗?
  18. python筛选股票_GitHub - sundroid/stock_pick: 这时一个通过设定选股条件来帮我们筛选股票的python程序...
  19. Ubuntu 文件管理器 ranger
  20. 牛客网编程答题测试技巧

热门文章

  1. 如何合理利用通勤时间
  2. 群辉 虚拟linux,黑群晖DSM6.2.1在centos7的KVM里面总是crash
  3. 华为云计算之ebackup备份原理
  4. P2-21js-ajax
  5. WebOS设置谷歌同步帐号
  6. android6 root无法开机,A7 root不开机无限重启完美修复教程
  7. 网络分流器|网络分流器|网络分流器分类
  8. 成都市发布大数据产业发展规划 2025年产值达到3000亿元
  9. 解决7牛上传图片错误:error: file exists
  10. js实现轮播图(点击小图片切换大图片+自动切换)