python进修笔记.docVIP

  • 3
  • 0
  • 约3.01万字
  • 约 5页
  • 2017-06-04 发布于河南
  • 举报
python进修笔记

一.python学习之输出重定向 Python?支持输出重定向。其主要的操作主要包括三个部分: 1、??导入(sys模块) 2、??保存标准输出(是为了在关闭重定向文件后能够直接返回到标准输出) 3、??重定向 Import sys save_out=sys.stdout sys.stdout=open(testfile,w+) 二.Python下的数据类型 Python把类型本身当成对象,数据本身也当成对象,因此python中的赋值语句都是引用传递的,即:当对象被创建并赋值给变量时,都是将该对象的引用赋值给变量,然后会将该对象的引用计数设置为1.。Python中不存在自增自减操作符(++,--)等。 1.数字类型 :(有符号整型,浮点型, 复数) 2.字符串类型(不存在c语言中的字符类型(char)) 3.列表类型(列表元素的个数及元素的值可以改变) 4.元组类型(元素的值是不可以改变的) 5.字典类型(映射数据类型:key值 和 value值) Python按照对象的存储模型将数据类型分为:原子(标量存储)类型和容器存储类型。 Python按照对象的值的可变性将对象数据类型分为:可变数据类型(列表和字典)和不可变数据类型(数字、字符串、元组)。、 Python按照对象的访问方式将对象数据类型分为:直接存取类型(非容器类型(所有数字类型))、顺序类型(字符串、元组、列表)、映射类型(字典)。 数据类型 存储方式 更新模型 访问方式 数字 标量存储 不可变 直接存取 字符串 标量存储 不可变 顺序访问 元组 容器存储 不可变 顺序访问 列表 容器存储 可变 顺序访问 字典 容器存储 可变 映射访问 Python中的任何对象都包括3个属性: 1.身份(用于唯一标识自己的身份,可通过内建函数id()获得) (只读) 2.类型(数据类型) (只读) 3.值(对象的实际值(数据项)) Python提供is 和 is not 操作符来测试两个变量是否指向同一个对象。 三.Python下range函数 、enumerate函数、zip函数 range函数以书中为例:p105,每次把位于字符串最后的一个字符砍掉。 s=abcde for i in range(len(s),0,-1): print(s[:i]) abcde abcd abc ab a range函数的原型为:range(start,end,step),默认情况下,start=0,step=1.xrange()函数是range()函数的扩展,它支持比range()范围更大的值。 enumerate函数的用法: for i,char in enumerate(s): print(i,char) 0 a 1 b 2 c 3 d 4 e 5 f zip 函数的用法:zip也和enumerate的用法一致,需要通过循环遍历,才能访问对应的返回值。 a=123 b=abc zip(a,b) zip object at 0报错 for k,s in zip(a,b): print(k,s) 1 a 2 b 3 c 四.Python下的浅拷贝 顺序访问类型的浅拷贝是默认类型拷贝。可以通过几种方式实施: 完全的切片操作[:] 利用工厂函数(dict( ). List( )等) 使用copy函数 因此必须区分浅拷贝和直接引用的区别,浅拷贝是在如上三种条件下才会产生: (1) person=[name,[savings,100]] hus=person wife=person id(hus),id(wife),id(person)16783840此时hus,wife,及person的id是相同的,这说明此时,仅仅是增加了person的引用数,因此,如果此时更改这3个值中的任意一个值,都会导致剩下的两个值改变。充分体现了应用传递的方式。 如: hus[0]=tingfeng wife[0]=bozhi hus [bozhi, [savings, 100]] wife [bozhi, [savings, 100]] (2)浅拷贝是新创建了一个类型跟原对象一样,该对象的内容是原来对象的引用,因此,在浅拷贝下,新对象的id必然会和原对象不同: 如: person=[name,[savings,100]] hus=person[:] wife=list(person) id(hus),id(wife),id(person)16857608,16783

文档评论(0)

1亿VIP精品文档

相关文档