基础数据类型

int:1,3 加减乘除等计算:

+(加) - (减)*(乘) /(除) //(整除)

str:存储少量的数据,进行简单的操作

索引:
	x = 'wanliang'
	x[2] --> n
	
切片:
	x = 'wanliang'
	x[2:5] --> nli
	
步长
	x = 'wanliang'
	x[2:5:2] --> ni
	
反取/反取加步长
	x = 'wanliang'
	x[5:2] --> ail
	
	x = 'wanliang'
	x[5:2:-2] --> al
	
格式化:
	%
			表示占位符
	%s
		表示字符串和整数
	%d
		表示整数
	示例:	
		x = 'my name is %s, i am %d years old' % ('wanliang', 23)
	
	%% 第一个%对第二个%转义


常用方法:
	capitalize	 	首字母大写
  	x = 'wanliang'
  	x.capitalize()
  	'Wanliang'
	swapcase	大小写翻转
  	x = 'WanLiang'
  	x.swapcase()
  	'wANlIANG'
	title			每个单词的首字母大写
  	x = 'wan liang'
  	x.title()
  	'Wan Liang'
	center		内容居中,总长度,空白填充
  	x = 'study'
  	x.center(30, '-')
  	'------------study-------------'
	count		统计字符出现的次数
  	x = 'wanliang'
  	x.count('a')
  	2
	expandtabs  默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
  	x = 'wanliang\t'
  	x.expandtabs()
  	'wanliang        '
	startwith	endwith	以...开头 以...结尾,正确为True,错误为False
  	x = 'wanliang'
  	x.startswith('w')
  	True
  	x.endswith('g')
  	True
	find				查找字符的索引
  	x = 'wanliang'
  	x.find('i')
  	4
	split				以...为分隔,str转换为list
  	x = 'wan liang'
  	x.split(' ')
  	['wan', 'liang']
	replace			替换
  	x = 'wan liang'
  	x.replace('liang', 'xxx')
  	'wan xxx'
	format			格式化
  	x = 'i love {0}, {0} make me happy'
  	x.format('study')
  	'i love study, study make me happy'
	strip			去除首尾空格、\t、换行符
  	x = '  wanliang   '
  	x.strip()
  	'wanliang'
	is系列
		name.isalnum()	字符串由字母或数字组成
		name.isalpha()	字符串只由字母组成
		name.isdigit()		字符串只由数字组成
  		x = 'wanliang123'
  		x.isdigit()
  		False
  		x.isalpha()
  		False
  		x.isalnum()
  		True

list:[1,3,'sad',True...] 存储大量的数据

增
	append 追加元素
  	x = [1, 2, 3]
  	x.append('wan')
  	print(x)
  	[1, 2, 3, 'wan']
	insert 选择索引位置插入
  	x = [1, 2, 3]
  	x.insert(1, 'wan')
  	print(x)
  	[1, 'wan', 2, 3]
	extend 迭代为最小元素追加到列表
  	x.extend([11, 22, 33])
  	print(x)
  	[1, 2, 3, 11, 22, 33]
删
pop 按索引删除,有返回值
  	x = [1, 2, 3]
  	y = x.pop()
  	print(x, y)
  	[1, 2] 3
remove 按元素删
  	x = [1, 2, 3]
  	x.remove(3)
  	print(x)
  	[1, 2]
clear 清空列表
  	x = [1, 2, 3]
  	x.clear()
  	print(x)
  	[]
del
    1.删除列表
  			x = [1, 2, 3]
  			del x
  			print(x)
  			Traceback (most recent call last):
  				File "<input>", line 1, in <module>
  			NameError: name 'x' is not defined
    2.按照索引删除
  			x = [1, 2, 3]
  			del x[0]
  			print(x)
  			[2, 3]
    3.按照切片删除
  			x = [1, 2, 3]
  			del x[0:2]
  			print(x)
  			[3]
改
	1.按索引修改
  	x = [1, 2, 3]
  	x[2] = 'wan'
  	print(x)
  	[1, 2, 'wan']
	2.按切片修改(会先清空区域内元素,再迭代加入新元素'a', 'd', 's', 'a', 'a'到区域内,不需要数量相等)
  	x = [1, 2, 3]
  	x[0:2] = 'wan'
  	print(x)
  	['w', 'a', 'n', 3]
查
	1.按索引查
  	x = [1, 2, 3]
  	x[0]
  	1
	2.按切片查
  	x = [1, 2, 3]
  	x[0:2]
  	[1, 2]
常用方法:
	len	列表长度
  	x = [1, 2, 3]
  	len(x)
  	3
	count	统计元素出现的次数
  	x = [1, 2, 3, 3, 3]
  	x.count(3)
  	3
	index	元素的索引值
  	x = [1, 2, 3]
  	x.index(3)
  	2
	sort	排序
  	x = [1, 3, 6, 2, 4]
  	x.sort()
  	print(x)
  	[1, 2, 3, 4, 6]
	x.sort(reverse=True) 反序
  	x = [1, 3, 6, 2, 4]
  	x.sort(reverse=True)
  	print(x)
  	[6, 4, 3, 2, 1]
	reverse	翻转
  	x = [1, 3, 6, 2, 4]
  	x.reverse()
  	print(x)
  	[4, 2, 6, 3, 1]
列表嵌套:
  l1 = [1, 2, 'alex', ['WuSir', 'taibai', 99], 6]
  l1[2] = l1[2].capitalize()
  l1[3][0] = l1[3][0].upper()
  l1[3][2] = str(l1[3][2] + 1)
  print(l1)
  [1, 2, 'Alex', ['WUSIR', 'taibai', '100'], 6]

range

	range迭代

for i in range(0, 5): print(i)

01 2 3 4

range加步长

for i in range(0, 5, 2): print(i)

  0
  2
  4
range反取加步长
  for i in range(5, 0, -2):
  		print(i)

  5
  3
  1

tuple 元组,只读列表 从属于元组的元素不能改,元素内的元素可能可以改,比如元组内的列表

  x = ('wan', 'liang')

x[1] = 'xxx' Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: 'tuple' object does not support item assignment

  x = ('wan', 'liang', [1, 2, 3])
  x[2][2] = 'xxx'
  print(x)
  ('wan', 'liang', [1, 2, 'xxx'])

dict:{'name': 'alex'}查询速度快(二分查找),存储的是关系型数据

字典:键必须唯一,不可重复,value可以为任意数据类型或对象
3.5版本包括.5之前都是无序的
字典的键只能是不可变的数据类型

增
	dic['key'] = 'value'		有key修改,无key添加
  	x = {'name': 'wanliang', 'age': 18}
  	x['name'] = 'alex'
  	print(x)
  	{'name': 'alex', 'age': 18}
  	x['hobby'] = 'girl'
  	print(x)
  	{'name': 'alex', 'age': 18, 'hobby': 'girl'}
	dic.setdefault('key')		有key不修改,无key添加
  	x = {'name': 'wanliang', 'age': 18}
  	x.setdefault('name', 'alex')
  	'wanliang'
  	print(x)
  	{'name': 'wanliang', 'age': 18}
  	x.setdefault('hobby', 'girl')
  	'girl'
  	print(x)
  	{'name': 'wanliang', 'age': 18, 'hobby': 'girl'}
删
	pop		返回value
  	x = {'name': 'wanliang', 'age': 18}
  	y = x.pop('name')
  	print(x, y)
  	{'age': 18} wanliang
	dic.pop('key', None) 	删除不存在的key时,不加None会报错
  	x = {'name': 'wanliang', 'age': 18}
  	y = x.pop('hobby')
  	Traceback (most recent call last):
  		File "<input>", line 1, in <module>
  	KeyError: 'hobby'
  	y = x.pop('hobby', None)
  	print(x, y)
  	{'name': 'wanliang', 'age': 18} None
	popitem	随机删除一个,返回一个包含被删除的键值对的元组
  	x = {'name': 'wanliang', 'age': 18}
  	x.popitem()
  	('age', 18)
  	print(x)
  	{'name': 'wanliang'}
	clear	清空字典
  	x = {'name': 'wanliang', 'age': 18}
  	x.clear()
  	print(x)
  	{}
	del
		1.删除整个字典
  		x = {'name': 'wanliang', 'age': 18}
  		del x
  		print(x)
  		Traceback (most recent call last):
  			File "<input>", line 1, in <module>
  		NameError: name 'x' is not defined
		2、按照key删除
  		x = {'name': 'wanliang', 'age': 18}
  		del x['name']
  		print(x)
  		{'age': 18}
改
	update
		dic2.update(dic)	把dic给dic2,dic中的key在dic2中无则添加,有则修改
  	x = {'name': 'wanliang', 'age': 18}
  	y = {'name': 'alex', 'hobby': 'girl', 'job': 'teacher'}
  	x.update(y)
  	print(x)
  	{'name': 'alex', 'age': 18, 'hobby': 'girl', 'job': 'teacher'}
查
	get  当访问的key不存在时,可设置默认值
  	x = {'name': 'wanliang', 'age': 18}
  	x.get('name')
  	'wanliang'
  	x.get('hobby', 'study')
  	'study'
	dic.keys()		所有的键,类似列表的容器,可循环,没有索引
  	x = {'name': 'wanliang', 'age': 18}
  	x.keys()
  	dict_keys(['name', 'age'])
	dic.values()	所有的值,类似列表的容器,可循环,没有索引
  	x = {'name': 'wanliang', 'age': 18}
  	x.values()
  	dict_values(['wanliang', 18])
	dic.items()	  返回包含keys和values的两个元组
  	x = {'name': 'wanliang', 'age': 18}
  	x.items()
  	dict_items([('name', 'wanliang'), ('age', 18)])
比较运算:
	优先级:() > not > and > or
		0为False
		非0为True
		
		and
			x and y  if x 为真,取x; if x 为假,取y
			x or y 和and相反
			
			1 > 3 and 2 < 4 --> x为False,取y,y为True
			3 > 4 and 4 < 3 --> x为False,取y,y为False
			True or Fale --> x为True,取y,y为Fasle
			所以条件语句走else,打印False
  			if 1 > 3 and 2 < 4 or 3 > 4 and 4 < 3:
  				print(True)
  		else:
  				print(False)

数据类型的补充: 在循环一个列表时,不要改变列表的大小,这样会影响结果 在循环一个字典时,不要改变列表的大小,这样会影响结果