python3的数据类型
python一共有8中数据类型,分别是:数字(number)、字符串(string)、布尔值(boolean)、列表(list)、元组(tuple)、字典(dict)、集合(set)、空值(None)
一、数字类型
数字类型分为:整型(int)、浮点型(float)、复数
1. python内置数学函数
abs(x)--返回数字x的绝对值 ⚠️参数不能为空
>>>abs()
Traceback (most recent call last):
File"", line 1, in TypeError: abs() takes exactly one argument (0 given)>>> abs(1)1
>>> abs(-1)1
max(x, y[, z, ...])--返回两个及以上参数中的最大值 ⚠️参数必须是一个可迭代对象
>>> max(1,-1)1
>>> max(1,-1,-0.2,123)123
>>> max(1)
Traceback (most recent call last):
File"", line 1, in TypeError:'int' object is notiterable>>> max("abc")'c'
>>> max([1,2,3])3
>>> max({"a":1,"b":2,"c":3})'c'
>>> max((1,2,3))3
>>>
min(x, y [, z, ...])--返回两个及以上参数中的最小值
pow(x, y)--返回x的y次方
>>> pow(2,5)32
>>> pow(2)
Traceback (most recent call last):
File"", line 1, in TypeError: pow expected at least2 arguments, got 1
>>>
round(x[, n])--返回x的四舍五入值,有n时表示四舍五入到小数点后n位
>>> round(1.27)1
>>> round(1.27,1)1.3
>>> round(1.27,-1)0.0
二、字符串类型
1. 什么是字符串?
被英文单引号' '或双引号" "括起来的任意文本。
2. 字符串运算
字符串拼接(加法):str1 + str2
>>> str1 = '123'
>>> str2 = "abc"
>>> print(str1+str2)
123abc>>>
字符串重复(乘法):x * str
>>> str = "Banzhuan"
>>> print(3 *str)
Banzhuan Banzhuan Banzhuan>>>
访问字符串中的元素:通过下标(从0开始)来访问字符串中的某个字符,但不能通过下标来改变原字符串
>>> str = "Banzhuanzhuan"
>>> print(str[0])
B>>> str[0] = "b"Traceback (most recent call last):
File"", line 1, in TypeError:'str' object does notsupport item assignment>>>
截取字符串部分元素:切片--str[开始下标 : 结束下班 : 步长] 范围是一个左闭右开区间,不写步长时,默认步长为1
>>> str = '0123456789abcdefghijklmn'
>>> print(str[0:9:1])
012345678
>>> print(str[0:9])
012345678
>>> print(str[:9])
012345678
>>> print(str[:])
0123456789abcdefghijklmn>>> print(str[1:])
123456789abcdefghijklmn>>> print(str[3:10])3456789
>>> print(str[3:18:2])
3579bdfh>>>
成员运算:in not in
>>> str = "da jia yiqi Banzhuan"
>>> 'a' instr
True>>> 'abc' instr
False>>> 'abc' not instr
True>>> "Ban" instr
True>>> "ban" instr
False>>>
比较大小:从第一个字符开始比较,谁的ASCII码值大谁就大,如果相等则比较下一个字符的ASCII码值。比较运算符有:>、>=、
>>> str1 = "abcd"
>>> str2 = "abcde"
>>> str3 = "abc"
>>> str4 = "abcd"
>>> str1 >str2
False>>> str1
True>>> str1
False>>> str1 = str4 #赋值运算符,而不是比较运算符
>>> str1 ==str4
True>>>
3. 格式化输出
打印多个值时,原始打印语句:print("num1=","num2=","num3=", num1,num2, num3)较为麻烦,使用占位符的方式更便于理解,格式print("num=%d, str=%s, f=%.3f" %(num, str, f))
常用占位符:%d整数占位符 %s字符串占位符 %f小数占位符(默认小数点后6位,多余位数四舍五入,少于位数补0,指定精度到小数点后几位%.nf,n为数字)
>>> num = 555
>>> str = "banzhuan"
>>> f = 1.23456
>>> print("num=%d,str=%s,f=%.2f" %(num,str,f))
num=555,str=banzhuan,f=1.23
>>> print("num=%d str=%s f=%.2f" %(num,str,f))
num=555 str=banzhuan f=1.23
>>>
❗️也可以调用字符串的format方法进行格式化输出
4. 原始字符串--用于字符串中有很多需要转义的字符的情况
如:r"\\\\\\"
5. 常用字符串方法🌟
len(str)--返回字符串str的长度(字符个数而非字节数)
>>> str = "banzhuan together"
>>> print(len(str))17
>>>
count(str[, start][, end])--
find(str[, start][, end])--
rfind(str[, start][, end])--
index(str[, start][, end])--
rindex(str[, start][, end])--
strip()--
lstrip()--
rstrip()--
split(str[, num])--
splitlines()--
join(seq)--
replace(oldstr, newstr[, count])--
lower()--将字符串中的大写字母转换成小写字母,并返回该字符串
>>> str = "BANZHUAN"
>>> print(str.lower())
banzhuan>>> str = "BaNZhUaN"
>>> print(str.lower())
banzhuan>>>
upper()--将字符串中的小写字母转换成大写字母,并返回该字符串
>>> str = "banzhuan together"
>>> print(str.upper())
BANZHUAN TOGETHER>>> str = "BaNZhUaN"
>>> print(str.upper())
BANZHUAN>>>
swapcase()--将字符串中的小写字母转换成大写字母,大写字母转换成小写字母,并返回该字符串
>>> str = "BaN ZhUaN tOgEtHeR"
>>> print(str.swapcase())
bAn zHuAn ToGeThEr>>>
title()--将字符串中每个单词的首字母大写,并返回该字符串
capitalize()--将字符串首字母大写,并返回该字符串
>>> str = "ban zhuan together"
>>> print(str.capitalize())
Ban zhuan together>>> print(str.title())
Ban Zhuan Together>>>
center(width[, fillchar])--返回长度为width的字符串:原字符串居中,左右两侧由fillchar指定的字符填充,不指定时默认为空格
>>> str = "banzhuan"
>>> print(str.center(20,"*"))******banzhuan******
>>> print(str.center(2,"*"))
banzhuan>>> print(str.center(25))
banzhuan>>> print(str.center(25,"*"))*********banzhuan********
>>>
ljust(width[, fillchar])
rjust(width[, fillchar])
zjust(width)
max()--
min()--
maketrans(oldstr, newstr)--
translate(strTable)--
eval(str)--
三、布尔类型
布尔值:True False
四、列表类型
1. 什么列表?
用[]表示,可以存放数字、字符串、列表、元组、字典
2. 如何创建列表?
a: listname = [元素1, 元素2, 元素3...元素n]
b: 列表生成式:list(range(n, m))
[m, for m in "xxxxx"]
[m, for m in range(n, m)]
[m+n, for m in ["1","2","3"] for n in "123"]
[n*n, for n in rang(1,11) if n%3 == 0]
3. 如何访问列表元素?
取值:列表名[元素下标]
替换:列表名[元素下标] = 值
4. 常用列表方法:
append(x) --- 在列表末尾追加一个新元素,每调用一次append(),原列表新增一个元素,这个元素可以是数字、字符串、列表、元组、字典
extend(x) --- 一次性在列表末尾追加多个元素,extend()参数必须是一个可迭代对象,如果是字典,则会将字典的key作为元组追加进原列表
insert(i, x) --- 在列表的i号位置上插入元素x
pop() --- 不带参数时,表示删除列表最后一个元素;带参数时,表示删除参数指定位置上的元素
remove(x) --- 移除列表元素x,若有多个x,则移除第一个;不指定x时,会报错
clear() --- 清空列表元素
index(x [, start] [, end]) --- 返回指定区间[start, end]中第一个匹配到的元素x的索引
sort() --- 将列表元素排序,默认是升序
reverse() --- 将列表元素倒叙排列
len() --- 计算列表长度
count(x) --- 返回元素在列表中出现的次数
五、元组数据类型
1. 什么是元组?
与列表类似,也是用来存储数据的,用()将元素扩起来,元组元素可以是数字、字符串、元组、列表、字典
2. 怎么创建一个元组?
空元组:()
只有一个元素的元组:(1,)
有多个元素的元组:(1,"tuple",[1,2,3],{"key": "value"})
3. 元组元素访问
取值:元组名[下标]
替换:⚠️元组元素不能改变,故无此操作
4. 元组常用方法
len() --- 计算元组长度
tuple(list) --- 将列表转换成元组
max() --- 返回元组元素中的最大值
min() --- 返回元组元素中的最小值
六、字典数据类型
1. 什么是字典?
采用键-值对的形式存储数据的数据类型。字典的键必须是不可变类型且键必须唯一,值可以是任何类型
2. 访问字典元素
取值:1⃣️ 字典名[key] --- 当key不存在时,报错KeyError
2⃣️ get(key) --- 当key不存在时,返回None
3⃣️ setdefault(key, defaultValue) --- key存在时,返回对应的value;当key不存在时,将key,defaultValue存进字典,并返回defaultValue
替换:字典名[key] = value 当key存在时,替换key对应的value,不存在时,在字典中存入key-value
3. 删除字典元素
pop(key) --- 删除指定键值对,并返回key对应的value
del 字典名[key] --- 删除指定键值对
del 字典名 --- 删除字典
4. 字典常用方法
values() --- 获取字典中存储的所有value,并以列表的形式返回
keys() --- 获取字典中所有的key,并以列表的形式返回
items() --- 取出字典中存储的所有键值对,并返回这些键值对元组组成的列表
len(dict) --- 计算字典的长度
5. 字典的遍历
for key in dict:
print(key, dict[key])
for value in dict.values():
print(value)
for key,value in dict.items():
print(key, value)
for i, value in enumerate(dict):
print(i, value)
七、集合数据类型
1. 什么是集合?
与字典类似,用于存储数据无序的、无重复元素的集合。
2. set有哪些特点?
1⃣️ 类似于dict,但存储的元素只是一组key,无value
2⃣️ 无序、无重复元素
3⃣️ 存储的元素必须是不可变类型
3. set的用途?
主要用于list、tuple的去重
4. 如何创建一个set
1⃣️ 首先需要一个列表/元组/字典作为输入集合
2⃣️ 调用set()方法,如:set([1,2,3]) set((1,2,3,4)) set({1:1, 2:2, 3:3}) ⚠️字典作为输入集合时,集合中存储的只是字典的keys
5. set操作有哪些?
1⃣️ 向set中添加元素:add(x) 和 update(seq) --- add函数向set中添加一个元素x,x必须是不可变类型;update函数一次性向set中添加多个元素,seq必须是可迭代的
2⃣️ 删除set中元素:remove(x) --- 删除set中指定元素
3⃣️ 访问set中元素:
for element in set:
print(element)
for i,element in enumerate(set):
print(i, element)
6. set运算:交集 & 并集 |