Python程序设计(二 基础知识)——2.4 Python的数据类型详解

2.4 Python的数据类型

python中有六类数据类型:

● Number(数字)
● String(字符)
● List(列表)
● Tuple(元组)
● Set(集合)
● Dictionary(字典)

Python3的六个标准数据类型中:
 ● 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
 ● 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

2.4.1 Number(数字)

python3支持 int、float、bool、complex(复数)
python3里,只有一种整数类型 int,表示长整型,没有python2中的Long

2.4.1.1数值类型的赋值和计算
#赋值语句数据类型
a, b, c, d = 10, 2.3, True, 6-5j
print(type(a), type(b), type(c), type(d))
print(d)
print(d.real) #显示实部
print(d.imag) #显示虚部
print(d.conjugate()) #输出共轭复数

运行程序,结果为:

<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
(6-5j)
6.0
-5.0
(6+5j)
2.4.1.2数值运算
a = 1 + 5   #加法
b = 3.2 - 2 #减法
c = 3 * 2   #乘法
d = 2 / 4   #除法,得到一个浮点数
e = 2 //4   #除法,得到一个整数
f = 17 % 3  #取余
g = 2 ** 5  #乘方(2的5次方)
print('a = %d, b = %f, c= %d, d = %d, e = %d, f = %d, g = %d' % (a, b, c, d, e, f, g))

运行程序,结果为:

a = 6, b = 1.200000, c= 6, d = 0, e = 0, f = 2, g = 32
2.4.1.3数字函数
#返回数字的绝对值  abs()
#比较两个数大小   print((6<9) – (9 >6))   -1
#返回给定参数的最大值  print(max(1, 2, 3 ,5))     5
#返回给定参数的最小值  print(min(1, 2, 3 ,5))     5
#求x的y次方 2^5   print(pow(2, 5))   32
#round(x[, n])  返回浮点数x的四舍五入值,如果给出n值,则代表舍入到小数点后的n位
print(round(3.456))   # 3
print(round(3.556))   # 4
print(round(3.556, 2))   # 3.46
#导入库
# 库:封装一些功能
import  math
print(math.ceil(18.1))   # 19  向上取整
print(math.floor(18.9))  # 18  向下取整
print(math.modf(22.3))  # (0.3000000000007, 22.0)  返回小数部分和整数部分(浮点数)
print(math.sqrt(16))    # 4    开方运算

2.4.2 String(字符串)

字符串:以单引号或者双引号括起来的任意文本,例如‘abc’ “abc”
字符串处理函数:

# 创建字符串
str1 = 'abcde'
str2 = 'def'
#字符串的运算
#字符串的连接:
str3 = str1 + str2
print("str3 = ", str3)    # str3 =  abcdedef
#字符串的乘法:
str4 = str1 * 3
print("str4 = ", str4)   # str4 =  abcdeabcdeabcde
#访问字符串中的某一个字符:通过索引下标,索引从0开始
print(str1[1])           # b
#截取字符串中的一部分: 总给定下标1开始,截取到给定下标2之前
str5 = str1[1: 5]
print("str5 = ", str5)    # str5 =  bcde

# in
if 'a' in str1:
    print('yes')     # yes

#格式化输出
print("123")     # 123
num = 10
num2 = 10.2
print("num = ", num)    # num =  10
print("num = %d, str6 = %s, num3 = %.2f" %(num, str2, num2))
# num = 10, str6 = def, num3 = 10.20
# %d %s %f 占位符,后面的值未定

# 转义字符:将一些字符转换成有特殊含义的字符
# \n(换行符)
#  \'  \"
# \t 制表符(四个空格)
# r  表示内部的字符串默认不转义
print("E:\软件学习\Python")   # E:\软件学习\Python


# eval():将字符串str当成有效的表达式来求值并返回计算结果
print(eval("12 + 3"))   # 15

#len():返回字符串的长度(字符个数)
print(len("123 str as"))   #10

str20 = "A Good Man"
# lower(): 将字符串中的大写字母变为小写字母
print(str20.lower())   # a good man

# upper():将字符串中的小写字母变为大写字母
print(str20.upper())  #A GOOD MAN

# swapcase():转换字符串中大写字母为小写,小写字母为大写
print(str20.swapcase())   # a gOOD mAN

# capitalize():首字母大写,其他小写
print(str20.capitalize())  # A good man

# title():每个单词的首字母大写
print(str20.title())    #A Good Man

# center(width, fillchar):返回一个指定宽度,width居中的字符串为填充的字符
print(str20.center(20, "*"))  #**** A Good Man*****

2.4.3 List(列表)

List(列表) 是 Python 中使用最频繁的数据类型。
创建列表: 列表名 = [列表选项1,列表选项2,……,创建列表n ]
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [ ] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表操作1:

#创建一个空列表
list1 = []
#创建带有元素的列表
list2 = [11, 12, 13, 14, 15]
index = 0
sum = 0
while index < 5:
    sum += list2[index]
    index += 1
print("平均值 = %d" % (sum / 5))     # 平均值 = 13
#注意:列表中的元素数据可以是不同类型
#列表元素的访问,注意不要越界(下标超出可取的范围)
#取值格式 : 列表名[下标]
list3 = [1, 2, 3]
print(list3[2])  # 3

列表操作2:

#列表组合:
list = [1, 2, 3, 4, 5]
list4 = list2 + list3 
#列表的重复:
list5 = list * 3
#判断元素是否在列表中
print(3 in list5)    # True
#列表截取
print(list[2:4],list[:3],list[2:])    #[3, 4] [1, 2, 3] [3, 4, 5]
#二维列表
list6 = [[1, 2],[3, 4],[5, 6]]
print(list6[1])  # [3, 4]
print(list6[0][1])  # 2

列表操作3:

#append: 在列表中末尾添加新的元素
list7 = [1, 2, 3, 4, 5]
list7.append(6)
print(list7)     #[1, 2, 3, 4, 5, 6]
list7.append([7, 8, 9])
print(list7)     #[1, 2, 3, 4, 5, 6, [7, 8, 9]]
#extend 在末尾一次性追加另一个列表中的多个值
list8 = [1, 2, 3, 4, 5]
list8.extend([6, 7, 8])
print(list8)   #[1, 2, 3, 4, 5, 6, 7, 8]
#insert 在下标处添加一个元素,不覆盖原数据,原数据向后顺延
list9 = [1, 2, 3, 4, 5]
list9.insert(1, 100)
print(list9)  #[1, 100, 2, 3, 4, 5]

list9.insert(1, [200, 300])
print(list9)  #[1, [200, 300], 100, 2, 3, 4, 5]
#pop(x=list[-1]) 移除列表中指定下标中的元素(默认移除最后一个元素)
list10 = [1, 2, 3, 4, 5]
list10.pop()
print(list10)  #[1, 2, 3, 4]
list10.pop(2)
print(list10)  #[1, 2, 4]
#remove 移除列表中的某个元素第一个匹配的结果
list11 = [1, 2, 3, 4, 5, 4]
list11.remove(4)
print(list11)    #[1, 2, 3, 5, 4]
#clear 清除列表中所有数据
list12 = [1, 2, 3, 4, 5, 4]
list12.clear()
print(list12)    #[]
#index 从列表中找出某个值第一个匹配的索引值
list13 = [1, 2, 3, 4, 5, 3]
index13 = list13.index(3)  
#圈定范围 index(value, [start, [stop]])
index14 = list13.index(3, 4, 7)
print(index13, index14)    #2 5
#len 列表中元素个数
list14 = [1, 2, 3, 4, 5, 3]
print(len(list14))    #6
#max 获取列表中的最大值
list15 = [1, 2, 3, 4, 5, 3]
print(max(list15))   # 5
#max 获取列表中的最大值
list16 = [1, 2, 3, 4, 5, 3]
print(max(list16))   # 1
#count  查看元素在列表中出现的次数
list17 = [1, 2, 3, 4, 5, 3]
print(list17.count(3))  #2

列表操作4:

#reverse 倒序
list18 = [1, 2, 3, 4, 5, 3]
list18.reverse()
print(list18)   #[3, 5, 4, 3, 2, 1]
#排序 sort
list19 = [1, 2, 3, 4, 5, 3]
list19.sort()
print(list19)   #[1, 2, 3, 3, 4, 5]
#浅拷贝  引用拷贝
list20 = [1, 2, 3, 4, 5, 3]
list21 = list20
list21[1] = 100
print(list20)       #[1, 100, 3, 4, 5, 3]
print(id(list20))   #1973156821896
print(list21)       #[1, 100, 3, 4, 5, 3]
print(id(list21))   #1973156821896
#深拷贝  内存的拷贝
list22 = [1, 2, 3, 4, 5, 3]
list23 = list22.copy()
list23[1] = 100
print(list22)      #[1, 2, 3, 4, 5, 3]
print(id(list22))  #2126608710536
print(list23)      #[1, 100, 3, 4, 5, 3]
print(id(list23))  #2126614417096
#将元组转成列表
list24 = list((1,2,3,4))
print(list24)           #[1, 2, 3, 4]

2.4.4 Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
能用元组,就用元组,因为不可变
元组中的元素类型也可以不相同

元祖的操作1:

# 创建空的元组
tuple1 = ()
print(tuple)   #<class 'tuple'>
#创建带有元素的元组,元组中的元素可以不同
tuple2 = (1, 2, 3, "good", True)
print(tuple2)      # (1, 2, 3, 'good', True)
#定义只有一个元素的元组
tuple3 = (1,)
print(tuple3)         # (1,)
print(type(tuple3))   # <class 'tuple'>
#元组的访问  格式:元组名[] ,下标从0开始
tuple4 = (1, 2, 3, 4, 5)
print(tuple4[2])          # 3
#获取最后一个元素
print(tuple4[-1])         # 5

元祖的操作2:

#修改元组,元素不可变,元素里面的内容可变
tuple4 = (1, 2, 3, 4, [5, 6, 7])
#tuple4[0] = 100   # 报错,元组不能变
tuple4[-1][0] = 50
print(tuple4)    #(1, 2, 3, 4, [50, 6, 7])
#删除元组
tuple5 = (1, 2, 3, 4, 5)
del tuple5
# print(tuple5)  #NameError: name 'tuple5' is not defined

元祖的操作3:

#元组相加
tuple6 = (1, 2, 3)
tuple7 = (4, 5, 6)
tuple8 = tuple6 + tuple7
print(tuple8)       # (1, 2, 3, 4, 5, 6)
#元组相乘
print(tuple6 * 3)   # (1, 2, 3, 1, 2, 3, 1, 2, 3)
#判断元素是否元组
print(1 in tuple6)  # True
#元组的截取  格式 元组名[开始下标:结束下标]
#从开始下标开始截取,截取到结束下标之前
print(tuple8[2: 5])    #(3, 4, 5)
print(tuple8[2:])      #(3, 4, 5, 6)
print(tuple8[:5])      #(1, 2, 3, 4, 5)
#二维元组:元素为一维元组的元组
tuple9 = ((1, 2),(3, 4),(5, 6))
print(tuple9[2][0])    # 5

元祖的操作4:

tuple10 = (1, 2, 3, 4, 5)
#len(tuple10)  返回元组中元素的个数
#max(tuple10)  返回元组中的最大值
#min(tuple10)  返回元组中的最小值
#将列表转成元组
list = [1, 2, 3]
tuple11 = tuple(list)
print(tuple11)    #(1, 2, 3)
# 元组的遍历
for i in (1, 2, 3, 4):
    print(i)

2.4.5 Set(集合)

集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student)  # {'Jack', 'Rose', 'Mary', 'Tom', 'Jim'}
# 成员测试
if 'Rose' in student:
    print('Rose 在集合中')      
else:
    print('Rose 不在集合中')    # Rose 在集合中
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)           # {'a', 'c', 'd', 'r', 'b'}
print(a - b)  # {'r', 'd', 'b'}
print(a | b)  # {'m', 'a', 'c', 'z', 'd', 'r', 'l', 'b'}
print(a & b)  # {'c', 'a'}
print(a ^ b)  # {'l', 'm', 'r', 'b', 'd', 'z'}

2.4.6 Dictionary(字典)

字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。

dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"
tinydict = {'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
print(dict['one'])  # 1 - 菜鸟教程
print(dict[2])  # 2 - 菜鸟工具
print(tinydict)  # {'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
print(tinydict.keys())  # dict_keys(['name', 'code', 'site'])
print(tinydict.values())  # dict_values(['runoob', 1, 'www.runoob.com'])

2.4.7 数据类型之间的转换

函数描述
int(x [,base])将x转换为一个整数
float(x)将x转换成一个浮点数
complex(real [,imag])创建一个复数
str(x)将X转换成字符串
repr(x)将x转换成表达式字符串
eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s)将序列 s 转换为一个元组
list(s)将序列 s 转换为一个列表
set(s)转换为可变集合
dict(d)创建一个字典。d 必须是一个序列 (key,value)元组。
frozenset(s)转换为不可变集合
chr(x)将整数转换成一个字符
ord(x)将一个字符转换为它的整数值
hex(x)将一个整数转换为一个十六进制字符串
oct(x)将一个整数转换为一个八进制字符串
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值