码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础知识梳理 - 第02部分

时间:2018-02-26 11:18:30      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:Python基础知识   核心数据类型   


本文是Python基础知识的第二篇, 主要是对内置对象类型的介绍, 涉及的类型如下表.

技术分享图片



数字类型

在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类, 如整数和浮点数, 复数等. Python还提供了若干处理数字对象的工具, 如内置数学函数pow, abs等, 标准库math, random等.


看下数字的简单使用.

In [15]: 123 + 234

Out[15]: 357


In [16]: 1.5 * 4

Out[16]: 6.0


In [32]: pow(2, 10)

Out[32]: 1024


In [36]: import math


In [37]: math.pi

Out[37]: 3.141592653589793


In [38]: math.sqrt(44)

Out[38]: 6.6332495807108


In [39]: import random


In [40]: random.random()

Out[40]: 0.7181549555607203


In [41]: random.randint(1, 44)

Out[41]: 36


 

字符串类型

其为有序的字符的集合, 不能原地修改(不可变序列).


创建字符串常量

单引号

In [42]: 'spa"m'

Out[42]: 'spa"m'


双引号

In [43]: "spa'm"

Out[43]: "spa'm"


三引号

In [44]: '''...spam...'''

Out[44]: '...spam...'


In [45]: """...spam..."""

Out[45]: '...spam...'


字符串的基本操作 - 获取长度, 索引和分片

In [46]: S = 'spam'


In [76]: len(S)

Out[76]: 4


In [47]: S[0]

Out[47]: 's'


In [48]: S[-1]

Out[48]: 'm'


In [49]: S[1:3]

Out[49]: 'pa'


In [50]: S[:]

Out[50]: 'spam'


In [51]: S[:-1]

Out[51]: 'spa


字符串的方法 - 方法是和特定对象相关联在一起的函数, 使用如S.upper(), 从对象角度看, 其为对象的属性, 而该属性是可调用的函数. 那如何查看对象有哪些属性, 及方法的作用呢, 可通过内置的dir, help函数.


技术分享图片


In [68]: dir(S)

Out[68]:

['__add__',

 '__class__',

 'rstrip',

 'split',


In [70]: help(S.split)


Help on built-in function split:


split(...)

    S.split([sep [,maxsplit]]) -> list of strings


    Return a list of the words in the string S, using sep as the

    delimiter string.  If maxsplit is given, at most maxsplit

    splits are done. If sep is not specified or is None, any

    whitespace string is a separator and empty strings are removed

    from the result.

(END)



列表类型

其为任意类型对象的有序集合, 大小可变, 可嵌套(可变序列).


创建列表

In [72]: L = []


In [73]: L = [1, 2, 3, 4]


In [74]: L = ['abc', ['def', 'ghi']]


列表的基本操作 - 获取长度, 索引, 分片和原处修改

In [77]: L = ['spam', 'Spam', 'SPAM!']


In [78]: len(L)

Out[78]: 3


In [79]: L[1]

Out[79]: 'Spam'


In [80]: L[0:2]

Out[80]: ['spam', 'Spam']


In [81]: L[0:2] = ['eat', 'more']


In [82]: L

Out[82]: ['eat', 'more', 'SPAM!']


列表的方法, 查看思路同上, 此处略.



字典类型

其为通过键来读取的一系列键值对, 也叫关联数组或散列表, 任意类型对象的无序集合, 大小可变, 可嵌套(可变映射).


创建字典

In [84]: D = {}


In [85]: D = {'spam': 2, "eggs": 3}


In [86]: D = dict(name='Bob', age=42)


字典的基本操作 - 获取长度, 访问某项和原处修改

In [92]: D = {'spam': 2, "ham": 1, "eggs": 3}


In [93]: len(D)

Out[93]: 3


In [94]: D['spam']

Out[94]: 2


In [95]: D['spam'] = 4


In [96]: del D['eggs']


In [97]: D

Out[97]: {'ham': 1, 'spam': 4}


字典的方法, 略.



元组类型

其为任意类型对象的有序集合, 大小不可变(不可变序列).


创建元组

In [98]: T = ()


In [99]: T = (4,)


In [100]: T = ('a', 'b', 'c')


In [102]: T = 'a', 'b', 'c'


元组的基本操作 - 获取长度, 索引和分片

In [104]: T = ('a', 'b', 'c', 'd')


In [106]: len(T)

Out[106]: 4


In [107]: T[2]

Out[107]: 'c'


In [108]: T[1:3]

Out[108]: ('b', 'c')


元组的方法, 略.



集合类型

其为唯一的, 不可变对象的无序集合; 一个项在集合中只能出现一次, 不管将它添加多少次, 这些对象支持与数学集合理论相对应的操作.  


创建集合

In [110]: set('spam')

Out[110]: {'a', 'm', 'p', 's'}


In [123]: {'a', 'm', 'p', 's', 'a'}

Out[123]: {'a', 'm', 'p', 's'}


集合的基本操作 - 获取长度, 交集, 并集和差集

In [116]: S1 = {1, 2, 3, 4}


In [117]: S2 = {3, 4, 5}


In [118]: len(S1)

Out[118]: 4


In [119]: S1 & S2

Out[119]: {3, 4}


In [122]: S1 | S2

Out[122]: {1, 2, 3, 4, 5}


In [121]: S1 - S2

Out[121]: {1, 2}


集合的方法, 略.  



对于文件等其它类型对象, 这里暂且不说明了, 随着学习的深入, 慢慢会接触到.



通过上述总结, 可看到Python中提供了像dir()或len()这样的内置函数, 也有像S.upper()或D.keys()这样的方法调用, 那么两者间有什么区别呢...


对于多种类型的通用型操作, 都是以内置函数或表达式的方式提供的(如len(S), S[0]); 对于特定类型的操作, 都是以方法调用的形式提供的(如S.upper()). 



类型对象分类


根据访问方式分类

1. 数字 - 支持加法和乘法


2. 序列(字符串, 列表, 元组) - 支持索引和分片


3. 映射 - 通过键值访问


根据可变性分类

1. 不可变(数字, 字符串, 元组) - 不支持原处修改


2. 可变(列表, 字典, 集合) - 支持原处修改


若感兴趣可关注订阅号”数据库最佳实践”(DBBestPractice).

技术分享图片

Python基础知识梳理 - 第02部分

标签:Python基础知识   核心数据类型   

原文地址:http://blog.51cto.com/coveringindex/2072911

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!