刚开始学习一门编程语言,除了了解运行环境与语言类型之外,最基本还是从该语言的基本数据类型开始学起。
Python六大常用数据类型:
- int 整数
- float 浮点数
- str 字符串
- list 列表
- tuple 元组
- dict 字典
讲解这些先说一下python中的变量与变量名。
变量其实本质上是一个具有特殊格式的内存,变量名则是指向这个内存的别名。
python中的变量不需要声明,所有的变量必须赋值了才能使用。
赋值的步骤:
a = 100
第一步:准备好值100
第二部:准备好变量名a
第三部:将值与名字进行关联
一、整数
python将其他一些静态语言中的int、long,也就是整型和长整型合并为了一个。
python中的int是边长的,也就是说可以存储无限大的整数,但是这是不现实的,因为
没有这么多的内存够分配。
整型不仅支持十进制,还支持二进制、八进制、十六进制。
可以通过下面的方式来互相转换:
print(bin(20)) #转换二进制
print(oct(20)) #转换八进制
print(hex(20)) #转换十六进制
二、浮点型
浮点数也就是小数,如22.1,44.2,也可以使用科学计数法,比如:1.22e8。
python支持对整数和浮点数直接进行四则混合运算。
整数运算结果仍然是整数,浮点数运算结果仍然是浮点数,但整数和浮点数混合运算的结果就变成浮点数了。
a = 1
b = 1.1
print(type(a+b)) #<class 'float'>
三、字符串
字符串在任何编程语言中都是最常用的数据类型。
字符串的创建很简单,也是上面所说的三步,但是要加上单引号或者双引号。
a = "hello python"
也可以使用 “”” 创建多行字符串:
a = """
hello
python
"""
字符串可以通过下面方式进行截取或者连接:
print (str[0:4]) 输出第一个到倒数第四个的所有字符
print (str[0]) 输出单字符 第1个字符
print (str[3:]) 输出从第四个开始之后的所有字符
print (str * 2) 输出字符串两次
print (str + "bbbb") 连接字符串
字符串常用函数:
str.strip() 消除字符串s左右两边的空白字符(包括’t’,’n’,’r’,”)
len(str) 获取字符串长度
str.upper() 转换为大写
str.lower() 转换为小写
str.title() 每个单词首字母大写
str.capitalize() 首字母大写
字符串翻转:
a = 'abcde'
print(a[::-1])
字符串分割:
a = 'hello,python'
print(a.split(',')) #['hello', 'python'] 返回一个列表
相对应的还有一个将列表元素连接成字符串:
a = ['hello', 'python']
str = '-'
print(str.join(a)) # hello-python
四、列表
列表的写法是一个方括号内的值用逗号分隔。比如上面的[‘hello’, ‘python’]。
列表的数据项不需要具有相同的类型,列表中的每个元素都分配一个数字索引,第一个索引是0,第二个索引是1,依此类推。
访问列表中的值可以通过下面的方式:
list1 = [1, 2, 3, 4, 5, 6]
print(list1[2])
同样可以通过索引截取
print ("list1[2:5]: ", list1[2:5])
列表常用操作:
list1.append(‘7’) 追加一个元素在末尾,每次只能添加一个
len(list1) 返回列表元素个数
max(list1) 返回列表元素最大值
min(list1) 返回列表元素最小值
list1.count(obj) 统计某个元素在列表中出现的次数
list1.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list1.reverse() 反向列表中元素
list1.clear() 清空列表
list1.extend(seq) 在列表末尾一次性追加另一个序列中的多个值,也就是扩充了列表
append与extend的区别:
A = ['a', 'b', 'c']
A.append(['d', 'e'])
print(A) # ['a', 'b', 'c', ['d', 'e']]
B = ['a', 'b', 'c']
B.extend(['d', 'e'])
print(B) # ['a', 'b', 'c', 'd', 'e']
extend方法只能接收list类型,它是把这个列表中的每个元素添加到原list中。
append可以接收任意类型,追加到原list的末尾。
五、元组
元组的创建也很简单,和list类似,只是把'[]’换成了'()’。
tup1 = ('hello', 'python')
元组中只有一个元素的时候要注意:
tup2 = (10)
tup3 = ('a')
print(type(tup2)) #<class 'int'>
print(type(tup3)) #<class 'str'>
因为这样会被解释器当做运算符,所以正确的方法是在第一个元素后面添加逗号。
tup4 = ('a',)
print(type(tup4)) #<class 'tuple'>
元组同样可以使用下标索引来访问元组中的值:
tup5 = ('hello', 'python', 'hello', 'word')
print(tup5[1]) #python
print(tup5[1:3]) #('python', 'hello')
注意:
元组是不可以被修改的。
tup6 = ('hello', 'python', 'hello', 'word')
tup6[2] = 'aaa'
上面会出现一个异常: TypeError: ‘tuple’ object does not support item assignment
但是元组中如果包含了一个列表,那么这个列表是可以被修改的。
tup7 = ('hello', 'python', 'hello', 'word', ['aa', 'bb', 'cc'])
tup7[-1][1] = 'ddd'
print(tup7) # ('hello', 'python', 'hello', 'word', ['aa', 'ddd', 'cc'])
元组运算符:
len(tup) 计算元素个数
tup1 + tup2 连接生成新元组
tup * 4 元组复制
num in tup 元素是否存在,返回True/False
六、字典
python中的字典就是key,value的形式。使用大括号包含起来。字典中的成员的键是唯一的,如果出现多个同名的键,那么写在后面覆盖前面的值。
形式如下:
dict1 = {'a' : 1, 'b' : 2}
字典的常用操作最基本的也就是增删改查:
获取:
直接通过键来获取。
dict['b'] # 2
dict.keys() 获取字典中所有的键
dict.values()获取字典中的所有的值
增加:
dict1['c'] = 3 #{'a': 1, 'b': 2, 'c': 3} #如果键存在则更新对应的值
修改:
直接给键进行再次赋值就可以修改键对应的值了。
如果键不存在,则变成添加成员。
还可以通过:
dict1.update({"a":"11"})
dict1.setdefault("a", "222") # 已存在的键则修改无效
dict1.setdefault("d","222") # 不存在的话则创建
dict1.setdefault("e") # 没有设置值为None
删除:
使用pop删除指定键对应的成员,同时返回该值
print(dict1) # {'a': '11', 'b': 2, 'c': 3, 'd': '222', 'e': None}
print(dict1.pop("a")) # a
print(dict1) # {'b': 2, 'c': 3, 'd': '222', 'e': None}
#在不设置默认值的情况下,使用pop删除不存在的键,会报错。
print(dict1.pop("f")) # 报错 KeyError: 'f'
如果设置了默认值, print(dict1.pop(“f”, None)),则不会报错,返回这个默认值。
判断是否删除成功可以通过下面方式来判断:
if dict1.pop("f", None) == None:
print('键不存在')
else:
print('删除成功')
以上则是python中最基本的数据类型以及用法,当然还有其他的数据类型,作者暂时只列举了这些。