Python中的基本类型简介
1、变量
- 变量不仅可以是数字,还可以是任意数据类型
- 命名规范:变量是用一个变量名表示,变量名必须是大小写英文、数字和下划线_的组合,且不能用数字开头
- python中等号“=”是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,这种变量本身类型不固定的语言称之为动态语言
- print 'a','b' #,为空格;
例如:
a='ABC'
含义为:(1)在内存中创建了一个'ABC'的字符串
(2)在内存中创建了一个名为a的变量,并把它指向了'ABC'
2、字符串
- 表示:用'' 或者""括起来
- 字符串本身包含 '
用 " " 括起来
eg:"I'm ok"
- 字符串本身包含 "
用 ' ' 括起来
eg:'Learn "Python"in imooc'
- 字符串本身既包含 ' 又包含"
用 \进行转义,转义字符\不计入字符串内容中
eg:'Bob said \"I \'m OK\".'
- 常见的转义字符还有:
\n --> 换行
\t--->一个制表符
\\--->\字符本身
- 字符串‘xxx’和Unicode字符串u‘xxx’
- 字符串中的函数:
(1)upper() 把字符变成大写字母
(2)isintance(x,str)可以判断x是否是字符串
(3)str.capitalize(s) s字符串首字母大写
(4)str.strip(rm):删除str字符串中开头、结尾处的rm序列的字符;当rm为空时,默认删除空白符(包括’\n’,’\r’,’\t’,’ ’)。
- raw字符串与多行字符串
在字符串前面加一个前缀r,表示这是一个raw字符串,里面的字符不需要转义了例如:r'\^_^/'
如果表示多行字符串,可以用'''.........'''表示,也可以用r'''.......'''表示
- Unicode字符串 用u'.....'表示
Unicode字符串除了多了一个u之外,与普通字符没啥区别,转义字符和多行表示法仍然有效
3、整数和浮点数
- 整数运算结果仍然是整数,浮点数运算结果仍然是浮点数,整数和浮点数运算结果就变成浮点数了
- 整数除法,即使除不尽,结果仍然是整数
- %为求余
- 如果想着精确结果,把其中一个整数变成浮点数
4、布尔类型
- True False 与(and)或(or) 非(not)
- Python中把0、空字符串''和None看成False,其他数值和非空字符串都堪称True
5、list
- 创建list list是一个有序的集合,可以随时添加和删除其中的元素
- 用[]表示
- python为动态语言,所以list中包含的元素并不要求都必须是同一种数据类型。
- 索引从0开始 注意不要越界
- -1这个索引表示最后一个元素注意不要越界
- list中的函数:
(1)添加新元素 添加到尾部 --> append()
(2)添加新元素 ---> insert() 两个参数,一个是索引号,第二个是添加的新元素
(3)删除元素 ---->pop() 删除最后一个元素并且还返回这个元素 如果想删除指定下标的元素为pop(下标值)
(4)替换元素 ---->L[2]='Mise'
(5)zip()函数可以把两个list变成一个list
6、tuple 元祖
- tuple 元组创建完后不能修改了
- 用()表示
- 创建单元素的tuple ---> t=(1,) 不加逗号会被认为是将1赋值给t
- 可以借助list创建“可变”的tuple 但是变得只是list t=('a','b',['A','B'])
- tuple中的不变指的是,tuple中的元素,指向永远不变
7、if语句
注意:if语句缩进为四个空格
if后接表达式然后用:表示代码块开始、
8、dict字典
- 字典dict key-value 用{}表示
- dict就是通过key来寻找value的
- 可以用len()计算长度 一个key-value算一个
- dict的特点:
(1)查找速度快
(2)不论个数,速度都一样但是list会随着元素增加而逐渐下降
但是dict占用内存大,会浪费很多内容,list占用内存小。
(3)由于dict是按key查找的,所以,在同一个dict中,key不能重复
(4)存储的key-value序对是没有顺序的
(5)作为key的元素必须不可变
9、set
使用场景:
有的时候,我们只想要dict的key,不关心key对应的value,目的是保证这个集合的元素不会重复,这时,就用set
特点:
元素不重复,而且是无序的
Set会自动去掉重复的元素
与dict很像,但是不存储value
与dict中的key类似,必须是不变对象
10、函数
- 函数就是最基本的一种代码抽象的方式
- 调用函数:
需要知道函数的名称和参数
- 编写函数:
要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,用return语句返回函数值。
- 注意:函数体内的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回。
- 如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。
- return None可以简写为return。
- 定义默认参数
例如int()函数
int('123')
int('123',8) #第二个参数是转换进制,不传,默认是十进制,如果传了,就用传入的参数
- 函数的默认参数的作用是简化调用。
- 由于函数的参数按从左到右匹配,所以默认参数只能定义在必须参数后面。
11、迭代
Python中,如果给定一个list或者tuple,我们都可以通过for循环来遍历这个list或着tuple,这种遍历成为迭代
For循环可用于其他可迭代对象上
集合是指包含一组元素的数据结构,
1、有序集合:list,tuple,str和Unicode
2、无序集合:set
3、无序集合并且具有key-value对:dict
迭代与按下标访问数组的最大不同是,后者是一种具体的迭代实现方式,而前者只关心迭代结果,根本不关心迭代内部是如何实现的。
索引迭代 ---- enumerate()函数自动把每个元素变成(index,element)这样的tuple,再迭代,就同时获得了索引和元素本身。
迭代dict中的value
dict对象有个values()方法,返回包含所有value的list
Dict对象还有一个itervalues()方法
两种方法不同之处:
values()方法实际上把一个dict转换成了包含value的list
但是itervalues()方法不会转换,它会在迭代过程中依次从dict中取出value,所以itervalues()方法比values()方法节省了生成list所需的内存
打印itervalues()发现它返回了一个<dictionary-valueiterator>对象,这说明在python中,for循环可作用的迭代对象远不止list,tuple,str,Unicode,dict等,任何可迭代对象都可以作用于for循环
如果一个对象说自己可迭代,我们就直接用for循环去迭代它,可见,迭代是一种抽象的数据操作,他不对迭代对象内部的数据有任何要求。
迭代dict中的value和key:----用items()或者iteritems()方法
生成列表:
[x*x for x in range(1,11)]
条件过滤:
[x*x for x in range(1,11) if x%2==0]
多层表达式:for循环嵌套for循环
[m+n for m in ‘ABC’for n in ‘123’]
相当于:
L=[] for m in 'ABC': for n in '123': L.append(m+n)