Python基础(2)-数据类型
1.数字
数字数据类型用于存储数值。它是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
# 创建对象
var1 = 1
var2 = 2
# 删除对象
del var1
del var1,var2
整型(int)
-
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
-
在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807
长整型(long)
-
Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
-
注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数。
浮点型(float)
-
浮点数用来处理实数,即带有小数的数字。
复数(complex)
-
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
2.布尔值
-
真或假(0或1)
3.字符串
字符串是以单引号'或双引号"括起来的任意文本,字符串是由数字、字母、下划线组成。
切片:
str = 'Hello World!'
print(str) # 输出完整字符串
print(str[0]) # 输出字符串中的第一个字符
print(str[2:5]) # 输出字符串中第三个至第六个之间的字符串
print(str[2:]) # 输出从第三个字符开始的字符串

常用字符串功能:
len(str1) # 计算字符串长度
print("str1",end=' ') # 不换行打印,通常调用print 时会自动打印一个换行符
str.split(' ') # 利用空格对str进行切割
'_'.join(str) # 利用'_'对str每个字符进行拼接
str + str2 # 字符串拼接
str.startwith('H') # 以指定字符串开头,返回布尔值
str.endwith('d') # 以指定字符串结尾 True
str.find('w') # 字符'w'第一次出现的位置
str.rfind('w') # 字符'w'最后一次出现指的位置
str.replace('m','n') # 将str中的'm'字符替换成'n'
str.strip() # 去除字符串首尾指定信息
str.lstrip() # 去除字符串左边指定信息
str.rstrip() # 去除字符串右边指定信息
str.capitalize() # 产生新的字符串,首字母大写
str.title() # 产生新的字符串,每个单词都首字母大写
str.upper() # 产生新的字符串,所有字符全转成大写
str.lower() # 产生新的字符串,所有字符全转成小写
str.center() # 字符串中间对齐
str.ljust() # 字符串左对齐
str.rjust() # 字符串右对齐
str.isalnum() # 是否为字母或数字
str.isalpha() # 检测字符串是否只由字母组成(含汉字)
str.isdigit() # 检测字符串是否只由数字组成
str.isspace() # 检测是否为空白符
str.isupper() # 是否为大写字母
str.islower() # 是否为小写字母
字符串格式化符号:
print "My name is %s and weight is %d kg!" % ('Zara', 21)
%c ## 格式化字符及其ASCII码
%s ## 格式化字符串
%d ## 格式化整数
%u ## 格式化无符号整型
%o ## 格式化无符号八进制数
%x ## 格式化无符号十六进制数
%X ## 格式化无符号十六进制数(大写)
%f ## 格式化浮点数字,可指定小数点后的精度
%e ## 用科学计数法格式化浮点数
%E ## 作用同%e,用科学计数法格式化浮点数
%g ## %f和%e的简写
%G ## %f 和 %E 的简写
%p ## 用十六进制数格式化变量的地址
4.列表
list是一种有序的集合,可以随时添加和删除其中的元素,元素可以重复、元素类型可多样化。
创建:
list = [] ## 定义1个空列表
list = ["Alex","Tenglan","Eric","Rain","Tom","Amy"] ## 定义1个列表
list = [range(10)]
切片:
list[1] ## 取索引1的的元素 list[1:4] ## 取索引1到4的元素,包含1,不包含4 list[:3] ## 取索引0到3的元素 list[3:] ## 取索引3到最后1个元素 list[0::2] ## 每隔1个元素,取1个元素
更新:
list.append('Google') ## 使用 append() 在列表结尾添加新的元素‘Google’
list.insert(2,"Mrli") ## 在索引为2的元素前增加新的元素‘Mrli’
list[2] = 'Mrli' ## 将索引为2的元素替换为新的元素‘Mrli’
list.extend()用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
删除:
del list[2] ## 根据索引删除对应元素
list.remove("Eric") ## 删除指定元素
list.pop() ## 删除列表的最后一个元素
循环迭代:
for x in [1, 2, 3]:
print x
常用操作及方法:
>>> [1, 2, 3] + [4, 5, 6] ## 组合
>>> [1, 2, 3, 4, 5, 6]
=======================================================================================
>>> 3 in [1, 2, 3] ## 元素是否存在于列表中
>>> True
=======================================================================================
## seq为元组,obj为元素,index表示元素下标
len(list) ## 列表元素个数
max(list) ## 返回列表元素最大值
min(list) ## 返回列表元素最小值
list(seq) ## 将元组转换为列表,
list.count(obj) ## 统计某个元素在列表中出现的次数
list.index(obj) ## 从列表中找出某个值第一个匹配项的索引位置
list.reverse() ## 反向列表中元素
list.sort(cmp=None,key=None,reverse=False) ## 对原列表进行排序
cmp(list1, list2) ## 比较两个列表的元素
5.元组
元组与列表使用方法基本一致,区别在于:元组是有序的,不可修改的,但可通过 "+" 对多个元祖进行拼接
创建:
tuple = () ## 创建空元组
tuple = (50,) ## 元组中只包含一个元素时,需要在元素后面添加逗号
tuple = (40,50,60)
删除:
del tup ## 元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
6.字典
dict内部存放的顺序和key放入的顺序是没有关系的。字典是无序的,键是惟一的,值不一定唯一
和list比较,dict有以下几个特点:
-
查找和插入的速度极快,不会随着key的增加而变慢;
-
需要占用大量的内存,内存浪费多。
而list相反:
-
查找和插入的时间随着元素的增加而增加;
-
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。需要牢记的第一条就是dict的key必须是不可变对象。dict可以用在需要高速查找的很多地方。
创建:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
dict = {'Name': 'Zara'}
查询:
>>> "Name" in dict
>>> True
>>> dict.get("Name") ## 返回指定键的值,如果值不在字典中返回default值
>>> 'Zara'
修改:
dict['Age'] = 8; ## 更新已存在元素
dict['School'] = "DPS School"; ## 添加新元素
删除:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'};
del dict['Name']; ## 删除键是'Name'的条目
dict.clear(); ## 清空词典所有条目
del dict ; ## 删除词典
dict.popitem() ## 随机删除字典元素
循环迭代:
## 方法1
for key in dict:
print(key,dict[key])
## 方法2
for k,v in dict.items(): #会先把dict转成list,数据里大时莫用
print(k,v)
7.集合
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
创建:
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
=================================
## 重复元素在set中会被自动过滤
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
更新:
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.update([10,37,42]) ## 在s中添加多项
删除:
>>> s.remove(4)
>>> s
{1, 2, 3}

浙公网安备 33010602011771号