数据类型,就是变量的类型,用于表示不同特征的变量,不同类型的数据类型。
不可变类型:int,float,str,bool,tuple
可变类型:list,dict,set
十进制转其它进制
bin(11) 0b1011 oct(11) 0o13 hex(11) 0xb
转十进制
int('0b1011',2) int('0o13',8) int('0xb',16)
在python2中(python3中没有长整形的概念): >>> num=2L >>> type(num) <type 'long'>
>>> x=1-2j >>> x.real 1.0 >>> x.imag -2.0
单行字符串:‘字符串’、“字符串” 多行字符串: 三引号(用于print中,或者是一个变量值)可以定义多行内容: ‘’‘多行字符串‘’’ “””多行字符串“”” 引号嵌套邻近配对,注意不能混用,比如:'字符串"
常用方法:
list1[0:3:1] # 切片,取出list中的索引 0 到 2 的元素,1 为步长 str1.split() # 以指定字符分割,默认是空格 str1.split(':',1) # 用 ’:’ 分割,只分割一次 split,rsplit # 分割字符串以指定符号,从左边,从右边开始分割 str1.strip(‘ *:’) # 去除指定的所有字符,两边的 lstrip,rstrip # 去除空白,从左边,右边 lower,upper # 字符串转换成全小写,全大写 startswith,endswith # 判断字符串以什么开头,结尾 format # 字符串格式化 join # 将字符串插入指定字符 ':'.join(str1) str1.replace('a','A',1) # 替换, 将指定字符替换为其它字符 str1.isdigit() # 纯数字字符串,且是整型
其他方法:
str1.find.('e') # 返回'e'的索引,返回-1,找不到 str1.index('e') # 返回索引,报错,找不到 str1.count('e') # 返回数量 str1.center(10,'*') ljust,rjust # 一共10位不够用符号填充,str1在中左右 str1.zfill(10) # 10位,用0填充 str1.expandtabs(2) # 设置制表符为 2 位 captalize # 字符串首字母大写 swapcase # 大小写反转 title # 每个单词首字母大写 isupper,islower # 判断是否全大写,全小写 istitle # 是否每个单词首字母大写 isalnum # 是否由字母和数字组成 isalpha # 纯字母 isspace # 纯空格组成 isidentifier #定义的名称是否合法
1)strip()
2)Isdigit()
3)Int()
关于判断字符串是否是数字:
b'1' bytes python2中字符串类型的格式, u'1' Unicode 也就是python3中的普通字符串格式 '一' 中文数字 'Ⅰ' 罗马数字 前提是,纯数字字符串 isdigit 只能判断阿拉伯数字(bytes 和 unicode 都可以) isnumeric bytes没有这个方法,可以识别阿拉伯数字(unicode)、汉字数字、罗马数字 isdecimal 只可以识别阿拉伯数字(unicode)
list 列表:a = [1,2,"3"] 取值: 从 0 开始,索引取值 设值: a[0] = 1 a[1] = 2 反向取值,最后一个元素索引为 -1,倒数第二个 -2 a[-1] = "3" 强制转换,能够被for循环遍历的类型:字符串、列表、字典、元组、集合 list('str1') 底部就是遍历这个类型,添加到列表中
常用方法:
list1.append('*') # 追加元素:"*" list1.insert(1,'*') #插入元素:"*" # 删除元素,如果删除的元素,不存在列表或者索引越界了,报错 del # 通用,没有返回值 l.pop() # 删除最后一个值,返回被删除的值 l.pop(0) # 删除 索引0 的值,返回被删除的值 l.remove('egon') # 删除具体的元素,返回值为None # 切片,和字符串一样有切片方法,完全切片为浅拷贝 l.count('a') # 统计'a'个数 index_a = l.index('1') # 查找元素索引 l.clear() # 清空列表 l.reverse() # 将列表反转,不是排序 l.sort() # 排序 # key:是排序依据,通常是 匿名函数:lambda 。reverse 默认是升序 False,从小到大 l.sort(key,reverse = False) l.sort(reverse = True) # 降序,从大到小 # 字符之间比大小 比如,'abc' 跟 'z' 比较,先比较第一个字母,大小,即决定了结果,如果第一个相同,就比较第二个,最后,先迭代了全部元素的小,大小根据ASCII码表。 # 一个列表元素添加到另外一个列表中 [] + [] a.extend(b) # b 也是一个可迭代对象
字典: a = {'name':'wl','age':24,} key是不可变类型,value是可变类型 {key : value} key 键;value 值; 取值:a['name'] 设值:a['name'] = 'wl' # 有则索引,没有则创建
定义一个字典:
dic = {} dic = dict(x = 1,y = 2,z =3) # 强制转换(定义字典): list1 = [[1,2],(1,2)] # 迭代取出的值必须是两个 dict(list1) # 初始化字典: keys = ['name','age','gender'] {}.fromkeys(keys,None)
常用方法:
# 删除元素 del d.pop('a') # 指定元素删除 d.popitem() # 随机删除,返回键值对元组 d.clear() # 清空字典 d.updata(dict1) # 更新列表,将dict1中的元素,更新到d中,如果key重复的就更新替换 d.setdefault('k1',222) # k1存在就不改,不存在的话创建,返回key对应的值 d.get('k1','不存在') # 返回None,或者指定参数 dict1.get(key) # 不存在 返回None dict1.get(key,"自定义的默认值”)
keys, values, items
for k in dict1.keys(): # 键 print(k) for k in dict1: # 默认取出的是 keys() print(k) for in dict1.values(): # 值 print(k) for k,i in dict1.items(): # 键值对 print(k,i) # Python2 dict1.keys() key 的列表 dict1.values() value 的列表 dict1.items() 键值对 的列表 # python3 是迭代器
In [8]: a = {'a':3,'b':3,'c':3} In [9]: a.pop() --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-9-9c070c907602> in <module> ----> 1 a.pop() TypeError: pop expected at least 1 arguments, got 0 In [10]: a.pop('a') Out[10]: 3 In [11]: a Out[11]: {'b': 3, 'c': 3} In [12]: a.popitem() Out[12]: ('c', 3) In [13]: a.clear() In [14]: a Out[14]: {}
只有两个值:True 和 False,表示真或假。 显式布尔值, 1 > 0 ,True,False 隐式布尔值, 非零即正
1 不可变的列表 不可变是指,元组内存储的每个索引的内存地址,不可变。 2 作为数据记录 定义元组: a = () a = tuple()
In [1]: a = ([1,2,3],) In [2]: a Out[2]: ([1, 2, 3],) # 可行 In [3]: d = {a:1} # 但是,作为字典的键,不可哈希 --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-3-e0429fdfbf1d> in <module> ----> 1 d = {a:1} TypeError: unhashable type: 'list'
定义: set1 = set() 集合:无序,元素不重复,元素为不可变类型 去重:只能针对不可变类型,不能保证顺序
常用方法:
# 关系运算 与:a & b 或:a | b 差集:a - b 对称差集:a ^ b 包含关系:a < b # 删除元素 s.discard(0) # 具体的元素是啥,不存在do nothing s.remove(1) # 具体的元素是啥,不存在,报错 s.update({1,}) # 更新 s.pop() s.add(5) # 添加元素
In [15]: a = {1,2,3} In [16]: a.discard(0) In [17]: a Out[17]: {1, 2, 3} In [18]: a.discard(1) In [19]: a Out[19]: {2, 3} In [20]: a.remove(0) --------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-20-ae1fd24e9d23> in <module> ----> 1 a.remove(0) KeyError: 0 In [21]: a.remove(2) In [22]: a.pop() Out[22]: 3 In [23]: a Out[23]: set() In [24]: a = {1,2,3} In [26]: a = {'1','2','3'} In [27]: a.pop('2') --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-27-9daa2d8bf7b7> in <module> ----> 1 a.pop('2') TypeError: pop() takes no arguments (1 given) In [28]: a Out[28]: {'1', '2', '3'} In [29]: a.add(5) In [30]: a Out[30]: {'1', '2', '3', 5}