Python3 基本数据类型
Python中的变量不需要声明。
每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在Python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
a = 8
有类型的对象(8)被放在内存中,无类型的变量(a)指向该对象。其中0-256均被Python事先开辟内存已存储 好。
Python 3中有六个标准的数据类型:
•Numbers(数字) •String(字符串) •List(列表)
•Tuple(元组) •Sets(集合) •Dictionaries(字典)
Numbers(数字)
1、Python可以同时为多个变量赋值,如a, b = b, a;(直接实现交换,无先后顺序,被当成元组))
2、一个变量可以通过赋值指向不同类型的对象。
3、数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。
4、在混合计算时,Pyhton会把整型转换成为浮点数。
String(字符串)
1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起,用*运算符重复。
3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
4、Python中的字符串不能改变。
5.
string.join
切片
string.split
string.partition
6字母处理
全部大写:str.upper()
全部小写:str.lower()
大小写互换:str.swapcase()
首字母大写,其余小写:str.capitalize()
首字母大写:str.title()
7
格式化相关
获取固定长度,右对齐,左边不够用空格补齐:str.ljust(width)
获取固定长度,左对齐,右边不够用空格补齐:str.ljust(width)
获取固定长度,中间对齐,两边不够用空格补齐:str.ljust(width)
获取固定长度,右对齐,左边不足用0补齐
8搜索相关
指定起始位置搜索:str.find('t',start)
指定起始及结束位置搜索:str.find('t',start,end)
从右边开始查找:str.rfind('t')
搜索到多少个指定字符串:str.count('t')
9.判断字符串是否包含子串的方法
1. if 'abcde'.__contains__("abc")
2. if "abc" in 'abcde'
3.'abcde'.find('bcd') >= 0
4.'abcde'.count('bcd') > 0
5.try:
string.index(ls,ss)
print 'find it'
except(ValueError):
print 'fail'
10.字符串去空格及去指定字符
去两边空格:str.strip()
去左空格:str.lstrip()
去右空格:str.rstrip()
去两边字符串(支持正则):s.strip('{|}')
按指定字符分割字符串为数组:str.split(' ')
默认按空格分隔
指定分隔符str,str.split('-')
11.字符串判断相关
是否以start开头:str.startswith('start')
是否以end结尾:str.endswith('end')
是否全为字母或数字:str.isalnum()
是否全字母:str.isalpha()
是否全数字:str.isdigit()
是否全小写:str.islower()
是否全大写:str.isupper()
str='python String function'
List(列表)
1、List写在方括号之间,元素用逗号隔开。
2、和字符串一样,list可以被索引和切片。
3、List可以使用+操作符进行拼接。
4、List中的元素是可以改变的。
Tuple(元组)
1、与字符串一样,元组的元素不能修改。
2、元组也可以被索引和切片,方法一样。
3、注意构造包含0或1个元素的元组的特殊语法规则。
创建空元组
tup1 = ();
元组中只包含一个元素时,需要在元素后面添加逗号
tup1 = (50,);否则括号会被python解释器当作运算符优先级(),得到tup1 = 50
4、元组也可以使用+操作符进行拼接。
Sets(集合)
集合(set)是一个无序不重复元素的集。 基本功能是进行成员关系测试和消除重复元素。 可以使用大括号 或者 set()函数创建set集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。
1.新建一个set: set("Hello"),这样会转成单个字符的值进行插入,结果是'H','e','l','o','l'因为重复只能插入一次。
2.增加一个元素: add()用于增加一个元素值, update([]),用于增加多个元素值,参数为list,注意如果用add增加多个值,会报参数类型错误。
3.删除一个元素: remove()用于删除一个set中的元素,这个值在set中必须存在,如果不存在的话,会引发KeyError错误。 discard()用于删除一个set中的元素,这个值不必一定存在,不存在的情况下删除也不会触发错误。
4.随机删除函数: set提供了一个pop()函数,这个函数随机返回一个元素值,然后把这个值删除,如果set为空,调用这个函数会返回Key错误。
5.清空函数: clear(),将set全部清空。
6.测试单个元素在集合内是否存在: in 或者 not in 如果需要判断一个值在集合内是否存在,in就能满足要求,例如2 in set_num 如果存在则返回True,否则返回False。
7.测试两个集合是否包含,子集操作: issubset和issuperset, s1.issubset(s2) :测试是否 s1 中的每一个元素都在 s2 中,运算符操作为 s1<=s2; s2.issuperset(s1) :测试是否 s1 中的每一个元素都在 s2 中,运算符操作为 s1>=s2;//注意是s2调用,参数为s1.
8.集合的并集: union s1.union(s2) :返回一个新集合,新集合包含s1,s2的所有元素,等价的运算符为 | 。
9.集合的交集: intersection,s1.intersection(s2),返回s1和s2中相同部分
10.其他操作: s1.difference(s2):包含s1中有,但是s2没有的元素的集合。 s1symmetric_difference(s2):包含s1和s2中不相同的元素的集合。
Dictionaries(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。 字典是一种映射类型(mapping type),它是一个无序的键 : 值对集合。 关键字必须使用不可变类型,也就是说list和包含可变类型的tuple不能做关键字。 在同一个字典中,关键字还必须互不相同。
注意:
1、字典是一种映射类型,它的元素是键值对。
2、字典的关键字必须为不可变类型,且不能重复。
3、创建空字典使用{ }。
4.Python中获取字典中最值对应的键
(1)利用min(dict, key=dict.get)
>>> d = {1:1, 2:0, 3:2} {1: 1, 2: 0, 3: 2}
>>> min(d, key=d.get)
(2) 利用lambda函数
>>>min(d.items(), key=lambda x: x[1])
(2, 0)
>>> min(d, key=lambda x: d[x])
2
直接作用于for循环的数据类型有以下几种
1.集合数据类型,如list、tuple、dict、set、str等;
2.generator,包括生成器和带yield的generator function。
这些可以直接作用于for循环的对象统称为可迭代对象:Iterable。 可以使用isinstance()判断一
个对象是否是Iterable对象:
>>> from collections import Iterable
>>> isinstance([], Iterable)
True
生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。 可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。 可以使用isinstance()判断一个对象是否是Iterator对象:
>>> from collections import Iterator
>>> isinstance([], Iterator)
False
集合数据类型如list、dict、str等是Iterable但不是Iterator,不过可以通过iter()函数获得一个Iterator对象。
Python的for循环本质上就是通过不断调用next()函数实现的,例如:
for x in [1, 2, 3, 4, 5]:
pass
实际上完全等价于:
# 首先获得Iterator对象:
it = iter([1, 2, 3, 4, 5])
# 循环:
while True:
try:
# 获得下一个值
x = next(it)
except StopIteration:
# 遇到StopIteration就退出循环
break