一、数据类型
1、int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
2、float(浮点型)
浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
3、complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
4、布尔值
真或假 1 或 0
5、字符串
字符串是 %s;整数 %d;浮点数%f
字符串基本操作:
移除空白、分割、长度、索引、切片
6、列表
创建列表:
name_list = ['alex', 'seven', 'eric']或name_list = list(['alex', 'seven', 'eric'])
基本操作:
索引、切片、追加、删除、长度、切片、循环、包含
7、元组(不可变列表)
创建元组:
ages = (11, 22, 33, 44, 55)或ages = tuple((11, 22, 33, 44, 55))
8、字典(无序)
创建字典:
person = {"name": "mr.wu", 'age': 18}或person = dict({"name": "mr.wu", 'age': 18})
常用操作:
索引、新增、删除、键、值、键值对、循环、长度
9、数据类型运算之三元运算符
result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
二、列表与元组基本操作
1、列表
list = ["apple","bob","coin","dog"]
切片
# 取出某一个值
str1 = list[1]
# 取出bob和coin,“顾头不顾尾”
str2 = list[1:3]
# 取出最后一个
str3 = list[-1]
# 取出coin和dog 依然是“顾头不顾尾”
str4 = list[-2:]
追加
list.append("element")
插入
list.insert(2,"banana")
修改
list[2] = "cow"
删除
# 第一种删除方法
list.remove("bob")
# 第二种删除方法
del list[1]
扩展
list2 = [1,2,3]
list.extend(list2)
拷贝
# 第一种
list2 = list.copy()
# 第二种
list3 = list[:]
# 第三种
list4 = list(list)
统计
list.count("dog")
排序&反转
# 排序
list.sort()
# 反转
list.reverse()
获取下标
list.index("dog")
2、元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
它只有2个方法,一个是count,一个是index,完毕。
3、字符串操作
name = "huihui"
name.capitalize() # 首字母大写
name.casefold() # 大写全部变小写
name.center(50,"-") # 输出 '---------------------huihui----------------------'
name.count('u') # 统计u出现次数
name.encode() # 将字符串编码成bytes格式
name.endswith("i") # 判断字符串是否以i结尾
"\t huihui".expandtabs(10) # 输出' huihui', 将\t转换成多长的空格
name.find('ui') # 查找ui,找到返回其索引, 找不到返回-1
# format:
introduce = "my name is {name} and {year} years old".format(name="huihui",year = 23)
# format_map
introduce = "my name is {name} and {year} years old".format_map({"name":"huihui","age":23})
name.isdigit() # 是否为十进制数字字符
name.isidentifier() #是否为合法的标识符
>>>"+".join(["1","2","3"])
1+2+3
>>>name.replace("h","H",1)
Huihui
>>>"1+2+3".split("+")
1 2 3
4、字典操作
字典是无序的,key是唯一的
基本操作:
>>>info = {
>>> "name":"huihui",
>>> "age":"23"
>>>}
# 增加
>>>info["height"] = "173cm"
{'name': 'huihui', 'age': '23', 'height': '173cm'}
# 修改
>>>infor["height"] = "175cm"
{'name': 'huihui', 'age': '23', 'height': '175cm'}
# 删除
>>>del info["height"]
{'name': 'huihui', 'age': '23'}
>>>info.pop["height"] # 标准删除
{'name': 'huihui', 'age': '23'}
# 查找
>>> "age" in info #标准用法
True
>>> info.get("age") #获取 失败返回None
23
>>> info["age"] #同上,但是看下面
23
>>> info["age"] #如果一个key不存在,就报错,get不会,不存在只返回None
多级字典嵌套操作:
info = {
"stu1":{
"name":"huihui"
},
"stu2":{
"name":"hui"
}
}
字典的其他操作:
# 取出所有值
>>> info.values()
dict_values(['LongZe Luola', 'XiaoZe Maliya'])
# 取出所有key
>>> info.keys()
dict_keys(['stu1102', 'stu1103'])
# setdefault 有key则返回,没有key就将默认值赋值
>>> info.setdefault("stu1106","Alex")
'Alex'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
>>> info.setdefault("stu1102","龙泽萝拉")
'LongZe Luola'
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
# update 将b和a合并,其中相同的key对应的值覆盖,不同的则合并
>>> info
{'stu1102': 'LongZe Luola', 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
>>> b = {1:2,3:4, "stu1102":"龙泽萝拉"}
>>> info.update(b)
>>> info
{'stu1102': '龙泽萝拉', 1: 2, 3: 4, 'stu1103': 'XiaoZe Maliya', 'stu1106': 'Alex'}
# items 将字典列表化
info.items()
dict_items([('stu1102', '龙泽萝拉'), (1, 2), (3, 4), ('stu1103', 'XiaoZe Maliya'), ('stu1106', 'Alex')])
# 通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
>>> dict.fromkeys([1,2,3],'testd')
{1: 'testd', 2: 'testd', 3: 'testd'}
循环字典:
#方法1
for key in info:
print(key,info[key])
#方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
print(k,v)