python之路-------第4章、介绍python对象类型

对象是内存中的一部分,包含数值和相关操作的集合。python可以分解成模块、语句、表达式以及对象:程序由模块构成、模块包含语句、语句包含表达式、表达式建立并处理对象。

1.1、为什么使用内置类型?

使用c或c++,很大一部分工作集中于对象,需要部署内存结构、管理内存分配、实现搜索和读取进程。而python不是这样,它提供了强大的对象类型作为语言的组成部分。

除非有内置类型无法提供的特殊对象要处理,所以最好总是使用内置对象而不是使用自己的实现。

1.2、python核心的数据类型

函数、模块和类这样的编程单元在python中也是对象,它们是由def、import、class这样的表达式和语句创建;一个方括号的表达式会生成一个列表,大括号的表达式会建立一个字典;python中没有类型声明,运行的表达式的语法决定了创建和使用的对象的类型;一旦创建了一个对象,它就和操作集合绑定了-只可以对字符串进行字符串相关的操作。python是动态类型的(它自动地跟踪变量的类型),但是它是强类型语言。列表提供了其他对象的有序集合,而字典是通过键存储对象的。列表和字典都可以嵌套,可以随需求扩展和删减,并能够包含任意类型的对象。

print(sys.modules)  ##只列出当前已经import的module,磁盘上没有import的模块不会被列出来

{‘tokenize‘: <module ‘tokenize‘ from ‘/usr/lib64/python2.6/tokenize.pyc‘>, ‘copy_reg‘: <module ‘copy_reg‘ from ‘/usr/lib64/python2.6/copy_reg.pyc‘>}

1.2.1、数字

+、*、**(表示乘方)

len(str(2**1000000))/random.random()/random.choice([1,2,3,4])

1.2.2、字符串

序列中的元素包含了一个从左到右的顺序-序列中的元素根据它们的相对位置进行存储和读取。严格讲,字符串是单个字符的字符串的序列。

字符串的正反向索引操作和分片操作。分片的一般形式x[i:j],表示取出在x中从偏移量i开始,直到但不包括偏移量为j的内容。分片中,左边界默认是0,并且右边界默认为分片序列的长度。+(字符串合并操作)、*(字符串重复操作)一个方法的意义取决于被操作的对象,这种多态的特性给python代码带来了很大的简洁性和灵活性。由于类型并不受约束,python编写的操作通常可以自动地适用于不同类型的对象。

1.2.3、不可变性

不可变性:创建后不能就地改变

python中每一个对象都可以分为不可变性或可变性。核心类型中,数字、字符串和元组是不可变的;列表和字典是可变的。

1.2.3、类型的方法

一条简单的法则是这样的:可作用于多种类型的通用型操作都是以内置函数和表达式的形式出现的,例如len(x)、x[0],但是类型特定的操作都是以方法调用的形式出现的。

1.3、模式匹配

re模块包括了类似搜索、分割和替换等调用。

1.4、列表

python的列表与其他语言中的列表类似;python的列表没有固定类型的约束;python列表没有固定大小,可以按需扩充或缩减列表大小。

1.4.1、列表的序列操作

>>> l=[123,‘spam‘,1.23]

>>> dir(l)

[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__delslice__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__getslice__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘,
‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__setslice__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘,
‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]

1.4.2、类型特定的操作

>>> l

[1.23, ‘spam‘, 123]

>>> l.sort()

>>> l

[1.23, 123, ‘spam‘]

>>> l.reverse()

>>> l

[‘spam‘, 123, 1.23]

1.5、嵌套

python核心数据类型的一个优秀特性就是它们支持任意的嵌套,能够以任意的组合对其进行嵌套,并可以多层进行嵌套。

1.6、pass语句是无运算的占位语句,当语法需要语句并且没有任何实用的语句可写时,就可以使用它。

while <test>:

<statements1>

else:

<statements2>

python不允许赋值语句出现在应该是表达式出现的地方;C语言赋值运算会返回被赋值后的值,但python赋值语句只是语句,不是表达式。

for循环时python中一个通用的序列迭代器:可以遍历任何有序的序列内的元素,for语句可用于字符串、列表、元组、其他内置可迭代对象以及之后能够通过类所创建的新对象

for <target> in <object>

<statements>

if <test>: break

if <test>: continue

else:

<statements>  ##if we didn‘t hit a break

python运行for循环时,会逐个讲序列对象中的元素赋值给目标,然后为每个元素执行循环主体。

1.7、循环计数器:while、range

range函数是通用的工具,range常用在for循环中产生索引,但是也可以用在任何需要整数列表的地方。

range函数使用一个参数时,range会产生从0算起递增1的整数列表,但其中不包含该参数的值;当有2个参数时,第一个视为下边界;当有3个参数时,第三个参数提供步进值。eval函数:eval(str [,globals [,locals ]]) ,可以用来讲字符串str当成有效python表达式求值,并返回计算结果

1.8、并行遍历:zip和map

内置函数range可以在for循环中以非完备的方式遍历序列;for (x,y) in zip(list1,list2),for循环使用元组赋值运算来解包zip结果中的每一个元组。

使用dict构造函数,可以把列表或zip过的键/值对列表,转换为字典类型;什么是列表解析和python3.0的字典解析??

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 02:26:09

python之路-------第4章、介绍python对象类型的相关文章

小白python之路【一】认识python

Python的优势 Python可以应用于众多领域,如:数据分析.组件集成.网络服务.图像处理.数值计算和科学计算等众多领域.目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube.Dropbox.BT.Quora(中国知乎).豆瓣.知乎.Google.Yahoo!.Facebook.NASA.百度.腾讯.汽车之家.美团等.互联网公司广泛使用Python来做的事一般有:自动化运维.自动化测试.大数据分析.爬虫.Web 等. Python的种类 Cpython Python的官方

《Python 学习手册4th》 第四章 介绍Python对象类型

''' 时间: 9月5日 - 9月30日 要求: 1. 书本内容总结归纳,整理在博客园笔记上传 2. 完成所有课后习题 注:“#” 后加的是备注内容(每天看42页内容,可以保证月底看完此书) ''' 摘要 Python程序可以分解成模块.语句.表达式和对象: 程序由模块构成: 模块包含语句: 语句包含表达式: 表达式建立并处理对象. 一. 为什么使用内置类型  #了解即可 内置对象使程序更容易编写 内置对象是扩展的组件 内置对象往往比定制的数据结构更高效 内置对象是语言的标准的一部分 二. Py

python之路_day70_django中cookie介绍

一.django模板系统 1.母板 为其他子模板文件所共有的内容文件,各子模板的不同部分通过模板语言占位.注意:我们通常会在母板中定义页面专用的CSS块和JS块,方便子页面替换,如下例: <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" con

python之路-------第3章、如何运行程序,热身

专业术语----- 库模块/使用一些东西做事情.创建变量就类似于创建对象进行初始化 常用方法------ dir(__builtins__).help(sys).import(sys).import imp.print(sys.path).print(sys.modules) dir()函数可以返回一个列表,其中包含了对象的所有属性,包括了方法和属性. 1.1.交互模式下编写代码 python交互命令行.IDE.系统终端. 如果没有设置系统shell的PATH环境变量,使其包含了python的安

2018-06-20 中文代码示例视频演示Python入门教程第三章 简介Python

知乎原链 Python 3.6.5官方入门教程中示例代码汉化后演示 对应在线文档: 3. An Informal Introduction to Python 不知如何合集, 请指教. 中文代码示例Python入门教程 3.1.1_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 中文代码示例Python入门教程 3.1.2 第一部分_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili 中文代码示例Python入门教程 3.1.2 第二部分_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

Python之路【第一篇:Python基础之拾遗】

拾遗一:Python种类 1.Cpython: 由C语言实现,将.py文件编译为.pyc文件的字节码,再转换为机器码.    2.Jpython: 由JAVA语言实现,将python的代码编译为JAVA的字节码,再转换为机器码.    3.Ironpython: 由C#实现,将将python的代码编译为C#字节码,再转换为机器码. 4.pypy: 将python的代码转换为字节码的同时也转换为机器码,提高执行速度. 拾遗二:Python的编码 1.ASCII码(American Standard

Python之路【第一篇:Python基础】

一:python的使用 1.python的两个版本:python2.0与python3.0.这两个版本的区别在于python3是不向下兼容python2的组件和扩展的,但是在python2.6和2.7的两个版本中将会继续兼容python2.0和3.0两个版本.简单点说就是python2.6与2.7是2.0版本向3.0版本的过渡版本,同时python的2.7版本也将是最后一个2.0版本,之后将全部使用python的3.0版本. Windows中python3.x的安装: 1 1.下载安装包 2 h

Head Frist Python 读书笔记 第六章 定制数据对象

Bullet Points: 定义Class python中的class和JavaScript中的类似(后悔没有认真看JS),原则只有一个“方法是共享的,而属性不共享” class AthleteList: def __init__(self,a_name,a_dob=None,a_times=[]): self.name=a_name self.dob=a_dob self.times=a_times def top3(self): return sorted(set([float(sanit

【Python之路】第四篇--Python基础之函数

三元运算 三元运算(三目运算),是对简单的条件语句的缩写 # 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 "值1" 赋值给result变量,否则,将"值2"赋值给result变量 基本数据类型补充 set set集合,是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object set(iterable) ->