包含的数据类型
数字、字符串、列表、元组、字典
数字——整型、长整形、浮点型、复数型
整数int表示的范围-2147483648到2147483647
长整形long :为了区分长整形和普通整数,需要在整数后加L或小写l。num = 1l type(num) <type 'long'>
浮点型float:
复数型:c = 3.14j type(c) <type 'complex'>
字符串 用单引号和双引号打印出来都是单引号,区别就是双引号里面可以打单引号。
字符串、列表、元组都被称为序列类型数据
字符串的切片
1、a = 'abcde'
a[1:4] (切片的起始下标:切片的截止下标+1)
'bcd'
2、a = 'abcde'
a[::2]([(起始下标):(截止下标+1):(步长)])步长是1也就是正着一个个取,-1时也就是逆着一个个取
'ace'
3、切片可以是负数,也就是说a[-1]是e,a[-4:-1]是bcd
中谷教育06——数据类型之序列
创建元组
type(元组)得到的是<type 'tuple'>
——一个空的元组由一对空的圆括号组成,如myempty=()
——含有单个元素的元组,singleton=(2,),
哪怕只有一个值,那后面也要有个逗号
——一般的元组,zoo=('wolf','elephant','penquin')
new_zoo = ('monkey','dolphin',zoo)
操作元组
——元组合字符串类型一样属于序列类型,可通过索引和切片操作
——元组值亦不可改变
t = ('milo',30,'male')
name ,age,gender = t
这样便分别对应上了(其实这也就是一种定义变量的方式:a,b,c = 1,2,3,一下定义了三个变量)
字符串、列表、元组都被称为序列类型数据
序列的两个主要特点是索引操作符和切片操作符
——索引操作符让我们可以从序列中抓取一个特定项目。
——切片操作符让我们能够获取序列的一个切片,即一部分序列。
序列的基本操作
,要看返回值。
元组、元组和列表十分类似,只不过元组和字符串一样是不可变的,即你不能修改元组
——元组通过圆括号中用逗号分隔的项目定义。
——元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。
(元组就相当于C语言的结构体.....的feeling)
列表[]
list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。
列表是
可变类型的数据
列表的组成:
用[]表示列表,包含了多个以逗号分隔开的数字,或者字串。
——list1['simon','david','clotho','张三'] type(list1) <type 'list'>
——list2[1,2,3,4]
——list3[]
列表定义的时候一个元素可以只写一个,不用加逗号即list3 = ['abc']是一个列表,而不是字符串
列表的操作:
——取值:切片和索引
:list[]
——添加:list.append() 在尾部加
——删除:del(list[]) () 括号里面的是名+下标
: list.remove(e) ()里面写的,将在列表中遍历,删除第一个所写元素
——修改:list[] = x
——查找:var in list
在python中help命令用来解释——help(......)
中谷教育07——对象和类
对象= 属性+方法
列表是使用对象和类的一个例子
——当你使用变量i并给它赋值的时候,比如赋整数5,你可以认为你创建了一个类(类型)int的对象(实例)i
——help(int)
类也有方法,即仅仅为类而定义地函数。
——仅在该类的对象可以使用这些功能
类也有变量,仅为类而定义的变量
——仅在该类的对象可以使用这些变量/名称
——通过点号使用,例如mylist.field
中谷教育08——字典
字典{}
字典是python中唯一的映射类型(哈希表)
字典对象是可变的,但是字典的键必须使用不可变对象,并且一个字典中可以使用不同类型的键值。
keys()或者values()返回键列表或者值列表
items()返回包含键值对的元组。
4分钟
创建字典:
——{} dic1 = {'name':'milo','age':25,'gender':'male'}
dic3 = {a:'aaa','b':'bbb'}
a = 1
b = 2
dic3 -> {1:'aaa','b':'bbb'}
——使用工厂方法:dict()
fdict=dict(['x',1],['y',2])
——内建方法:fromkeys(),字典中的元素具有相同的值,默认为None
ddict={}.fromkeys(('x'.'y'),-1)
访问字典中的值
——直接使用key访问:key不存在会报错,可以使用had_key()或者in和not in判断,但是has_key()方法即将废弃。
——循环遍历
for key in dict1.key():
——使用迭代器:for key in dict1:
更新和删除
——直接用键值访问更新;内建的update()方法可以将整个字典的内容拷贝到另一个字典中。
在列表中访问不存在的下标赋值时会报错,但在字典中给不存在的下标赋值是会在原字典中添加这个新的元素,但是这个元素的位置不固 定,因为字典是个无序的结构。
——del dice1['a']删除字典中键值为a的元素
dict1.pop('a')删除并返回键值为‘a’的元素
dict1.clear()删除字典所有元素
del dict1删除整个字典
字典相关的内建函数:
——type(),str(),cmp()(cmp很少用于字典的比较,比较依次是字典的大小、键、值)。
工厂函数dict()
——dict(zip('z','y'),(1,2))或者dict(x = 1,y = 2)
——{'y':2,'x':1}
——使用字典生成字典比用copy慢,因此这种情况下推荐使用copy()。