基本数据类型
python里有6种基本类型,三种为可变类型,三种为不可变类型
不可变类型:一旦创建在内存中就无法修改,之后对他的所有操作是产生一个新的值
目录
1、数字型(不可变数据类型)
int 整型
float 浮点型
complex 复数类型
(1)、运算符
+、-、*、/、%等基本运算符
** 次方运算
// 取整运算
python中没有自增自减运算符,只有a = a + 1 或 a+=1
(2)、基本内置函数
abs() #取绝对值函数
max min #求最大最小值
pow(a,b) #a的b次方
round(a,n) #对a四舍五入,保留到第n位小数
其他的一些函数封装在math模块中,需要导入模块 import math,模块名.函数名使用函数
ceil() #向上取整
floor() #向下取整
sqrt() #得到算术平方根
math.PI #常量PI
三角函数
sin()
cos()
tan()
随机数函数,封装在random里
randint(1,10) #生成1-10之间的数
random() #生成0-1之间的数
2、字符串型(不可变数据类型)
只要是引号(单引号,双引号)括起来的都是字符串,没有字符这个概念。
(1)、索引
a = 'hello' #定义字符串
#其中括号里为索引值
#从左至右范围为0-4,从右至左范围为(-1)-(-5)
print(a[1]) #结果为e
(2)、切片
print(a[1:4]) #从左往右索引切片的使用,结果为ell
print(a[-3,-1])#从右往左索引切片的使用,结果为ll
# 例:a[x,y],取值为x-(y-1),顾头不顾尾
# 例:a[:3],从头开始取;a[3:],取到最后;a[:],从头取到尾
# 例:a[x,y,z],从x取到y,取(x,x+z,x+2z...),z默认为1
# 例:a[::2]取值为hlo
# 例:a[::-2],z为d负数时,从右往左取,结果为olh(420)
# 例:a[1:-1:-1]->不打印 a[-1:1:-2]->ol
# 例:a[:3:-1]->o a[3::-1]->lleh
(3)、字符串的内置函数
upper() #转换字符串为大写
lower() #转换字符串为小写
capitalize() #转换首字母为大写
index("子字符串") #找对应子字符串的位置,没找到会报错
find("子字符串") #找对应子字符串的位置,没找到打印-1
split("分隔符") #分割字符串
"连接符".join(字符串) #待连接的字符
len() #计算长度
islower() #判断字符串是否全为小写,返回布尔值
isupper() #判断是否全为大写
isalnum() #判断字符串是否只有数字或字母
isalpah() #判断字符串是否全为字母
isdigit() #判断字符串是否全为数字
isspace() #判断字符串是否全为空格
3、列表
(1)、列表的创建
a = [] #列表的个数是任意的,里面的数据也是任意类型
a = [元素1,元素2......] #例: a = ['1','2','hello','[1,2]']
(2)、列表的访问
# -5 -4 -3 -2- 1
a=[1 ,2 ,3 ,4 ,5] //通过索引 a[索引值]
# 0 1 2 3 4
#通过in判断一个元素是否在列表中,返回true或false
if name in list:
print(name);
else:
print(“not in”);
#not in判断一个元素是否不在列表中,返回true或false
#列表名.count(元素) :计算该元素在列表中出现的次数,返回次数
#列表名.index(元素) :返回该元素第一次出现的位置
(3)、列表元素的修改
a[索引值] = '新的值'
(4)、添加元素
列表名.append(待添加的值) #尾部添加
列表名.insert(待插入的位置,待插入的内容)
列表名.extend(待插入的列表元素) #插入一个列表中的所有元素,不是把列表作为元素插入
(5)、删除元素
列表.pop() #就是删除列表的最后一个元素 -> 有返回值,就是会返回要删除的值
列表.pop(索引号) #就是删除该索引号的元素
del 列表名[下标]
列表名.remove("列表内容")
列表名.clear() #将列表清空
(6)、其他方法
列表.sort() #对列表排序,同类型进行排序
列表.sort(reverse=false) #reserve默认为false,对列表从小到大排序
列表.sort(reverse=True) #reserve默认为false,对列表从大到小排序
列表.reverse() #颠倒列表
(7)、列表的嵌套
#格式:[ [ ],[ ],[ ]...]
#例:访问‘o’元素:
python_class = [1,2,3]
java_class = ['1','2','3']
c_class = ['o','t','t']
all_class = [python_class,java_class,c_class]
print(all_class[2][0])
4、元组(不可变数据类型)
(1)、元组的创建
元组名 = ();元组名 = tuple() #函数创建元组
元组名 = (元素,元素,...) #元组存储的数据类型:字符串、数字、列表、元组等
#当元组只有一个元素的时候,必须在第一个元素后面加上‘,’
(2)、元组的访问
#元组的访问和list列表的操作是一样的(通过索引)
tup = (1,2,3,4,5)
print(tup[1]) //输出2
#元组切片的使用与list列表操作是一样的
tup = (1,2,3,4,5)
print(tup[:]) //输出(1,2,3,4,5)
(3)、元组的拆包
#使用*拆包
name = ("a","b","c")
print(*name)//输出 a b c
one,two,three = name
print(one,two,three)//输出 a b c
(4)、元组的基本操作
查操作与列表相同,但是不能增删改,因为元组的不可变数据类型
5、字典
(1)、字典的创建
#用一对{}创建空字典
#用字典函数dict()函数创建空字典
dict1 = {}#或者 dict1 = dict()
print(dict1,type(dict1))#输出{} <class 'dict'>
#在创建多个元素的字典时,元素与元素用“,”隔开
a = {1:1234,2:"hahaa"}
print(a) #输出{1: 1234, 2: 'hahaa'}
(2)、字典的存储
#字典的元素是‘键值对’(key:value) ‘键值对’必须要成对
#key:只能是不可变数据类型(字符串,元组,数字)
#value:可以为任意数据类型
a = {("1"):1234}
print(a) #输出{'1': 1234}
a = {1:1234}
print(a) #输出{1: 1234}
a = {("1",):1234}
print(a) #输出{('1',): 1234}
(3)、字典的基本操作
#字典的访问
#字典名[key] 访问元素的值
a = {1:1234,(1,):"hahaa"}
i = a[1]
print(i) #输出1234
i = a[(1,)]
print(i) #输出hahaa
#访问字典中不存在的key会报错,但是使用 字典名.get() 方法获取则不会报错,同时可以使用该方法赋予一个不存在的key的值,但不会向原字典添加值
a = {"name":"hahaa","sex":'man',"name":'xixii'}
print(a.get("type")) #输出None
print(a.get("type",11)) #输出11
print(a) #输出{'sex': 'man', 'name': 'xixii'}
#增加:字典名[key] = value
info = {'name':'hahaa'}
info['address'] = 'HB'
print(info) #输出{'address': 'HB', 'name': 'hahaa'}
#删
#del 字典名[key]
#字典名.clear(); ->清空字典
info = {'name':'hahaa'}
info['address'] = 'HB' #此时字典内容{'name': 'hahaa', 'address': 'HB'}
del info['name']
print(info) #输出{'address': 'HB'}
info.clear()
print(info) #输出{}
#改 :字典名[key] = 新的value
info = {'name':'hahaa'}
info['name'] = 'xixii'
print(info) #输出{'name': 'xixii'}
(4)、其他操作
#len(字典名),测量字典‘键值对’的个数
#字典名.keys(),返回一个只包含字典中所有key的列表
info = {'name':'hahaa'}
info['address'] = 'HB'
print(info.keys()) #输出dict_keys(['name', 'address'])
#字典名.values(),返回一个只包含字典中所有value的列表
print(info.values()) #输出dict_values(['hahaa', 'HB'])
#字典名.items(),返回一个包含所有键值对的元组(key,value)列表
print(info.items()) #输出dict_items([('name', 'hahaa'), ('address', 'HB')])
(5)、字典的遍历
info = {'name':'hahaa'}
info['address'] = 'HB'
for i in info.values():
print(i) #输出hahaa HB
for i in info.keys():
print(i) #输出name address
for i in info.items():
print(i) #输出('name', 'hahaa') ('address', 'HB')
for key,value in info.items(): #元组的拆包赋值
print(key,value) #输出name hahaa address HB
for i in info.items(): #下标赋值
print(i[0],i[1]) #输出name hahaa address HB
(6)、字典注意事项
#元素的key必须唯一,值value可以不唯一,一旦后面的元素的key与前面的元素相同时,他会完全覆盖前面相同key的元素
a = {"name":"hahaa","sex":'man',"name":'xixii'}
print(a) #输出{'name': 'xixii', 'sex': 'man'}
#字典是无序的
a = {"sex":'man',"name":'xixii'}
print(a) #输出{'name': 'xixii', 'sex': 'man'}或{‘sex’:'man',‘name’:'xixii'}
6、集合
可变数据类型,可以存储任意数据,且元素不可重复
在python中定义聚合有且只有一种方法,使用系统函数set()创建
a = set()
#非常规创建
b = {1,2,3,4,5}
集合的基本操作与列表几乎一样
(1)、格式化输出
①、format()
name = "李白"
job = "刺客"
print("{}他是{}".format(name,job)) #输出李白他是刺客 顺序传值
print("{name}他是{job}".format(name=name,job=job)) #输出李白他是刺客 键传值
②、format()的高级使用
#使用精度
{:.2f}.format(3.1415) #3.14
#千位w分隔符
{:,}.format(1000) #1,000
③、%占位
#s 表示字符串
#d 表示整型
#f 表示浮点 0.1f一位小数 0.2f两位小数
name ='MDZZ'
age = 18
sal = 200.5555
print("他叫%s今年%d岁,工资%.2f"%(name,age,sal))
#输出他叫MDZZ今年18岁,工资200.56
④、当数据只有一个的时候,直接给或者元组给。多数据的时候,必须给元组。