2. 数据类型
"""
数字 : Python3 支持 int、float、bool
1.1 整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点
1.2 浮点型(float) - 浮点型由整数部分与小数部分组成
1.3 布尔型(bool) - True False
"""
a = -100
b = 99.99
print(a+b)
bbb = True # 真
ccc = False # 假
from decimal import *
fff = Decimal("-100")+Decimal("99.99")
print(fff)
运算符
"""
数值运算示例 :
+ 两个数相加,或是字符串连接
- 两个数相减
* 两个数相乘,或是返回一个重复若干次的字符串
/ 两个数相除,结果为浮点数(小数)
// 两个数相除,结果为向下取整的整数
% 取模,返回两个数相除的余数
** 幂运算,返回乘方结果
"""
# print("-----加法运算-----", 4+5) # shift +
# print("-----减法运算-----", 6-3) # shift -
# print("-----乘法运算-----", 3*5) # shift + 数字8
# print("-----除法运算-----", 2/4) # 右手 shift 旁边 /
# print("-----除法运算,向下取余-----", 2//4) # 0 向下取整
# print("-----取模,返回两个数相除的余数-----", 7 % 3) # 得到1 shift+数字5
# print("-----幂运算,返回乘方结果-----", 2**2) # 2
比较符
"""
Python支持常见的比较运算符:
> 大于
>= 大于等于
< 小于
<= 小于等于
!= 不等于
== 等于
"""
a = 1
# print(6>3)
# print(4>=4)
# print(3<1)
# print(3<=2)
# print(4!=4)
# print(4==4)
# bool True = 1 False = 0
print(1+True)
print(1+False)
字符类型
"""
字符串的拼接
1、+
2、join
"""
a = '100'+"50"
print(a)
b = "我的名字叫做慕洲老师"
c = "我的工作是python技术教学"
d = "我很高兴来到这里给你们讲课"
f = ','.join((b,c,d))
print(f)
"""
运算结果:
10050
我的名字叫做慕洲老师,我的工作是python技术教学,我很高兴来到这里给你们讲课
"""
字符切片
s = '习学Python' # 英文状态下标点符号
# 字符串索引 下标 ->> 由0开始 负数
print(s[0])
"""
运算结果:
习
"""
"""
字符串的切片:
定义:切片操作可以从一个字符串中获取子字符串(字符串的一部分),使用起始偏移量tart、终止偏移量end、可选步长step定义一个分片
格式:[start:end:step]
特点:取头不取尾
使用方法:
[:]提取开头到结尾
[start:]从start提取到结尾
[:end]从开头提取到end-1
[start:end]从start提取到end-1
切片:是获取字符串的多个元素
如何表示:name[切的起始点 : 切的终点]
切片: 顾头不顾腚, 取左不取右, 右边的要 + 1
"""
name = "小仙女长相甜美并且温柔"
# 切片 [开始:结尾:步长] 取左不取右
print(name[2:5])
"""
运算结果:
女长相
"""
name = "小仙女长相甜美并且温柔"
# 切片 [开始:结尾:步长] 取左不取右
print(name[0:6:2])
"""
甜美并且温
小仙女长相甜 0 1 2 3 4 5
运算结果:
小女相
"""
常用方法
find:查找元素位置
"""
find:查找元素位置
查找字符串片段在字符串中的下标位置,从前往后找,返回的是第一个被找到字符串片段起始位置
第一个参数:要查找的字符串片段
第二个参数:要查找的起始点
第三个参数:要找到终止位置-1
如果查找的字符串存在多个,查找结果是第一个出现的字符串下标
找不到就返回-1
count:统计字符串片段,在字符串中出现的次数
找不到返回 0
"""
s1 = "pythonMuozhou"
print(s1.find("a",6,11))
#查找下标6到下标11中字符'a'的出现的位置
print(s1.count("o",6,12))
#查找下标6到下标12中字符'o'的数量
"""
运算结果:
-1
2
"""
replace:替换指定的字符串片段
"""
replace:替换指定的字符串片段
参数1:要替换的字符串片段
参数2:替换之后的字符串片段
参数3:替换的次数,从前往后替换(默认替换所有的)
replace(参数1,参数2,参数3)
upper:将小写字母转为大写
lower:将大写字母转成小写
"""
s1 = "PYthon To muzhou"
res = s1.replace('o', 'TT',2)
#将字符串的前两个'o'替换成'TT'
print(res)
res2 = s1.upper()
#s1字符串的字母转为大写
print(res2)
res3 = s1.lower()
#s1字符串的字母转为小写
print(res3)
"""
运算结果:
PYthTTn TTT muzhou
PYTHON TO MUZHOU
python to muzhou
"""
split:指定分割点对字符串进行分割
"""
split:指定分割点对字符串进行分割
参数1:分割点
参数2:分割的次数(默认找到所有的分割点进行分割)
strip:去除字符串首尾的空格
s2 = ' python:666 '
"""
s1 = "111ab222ab333ab444"
#将字符串,用规定的字符“a”进行分割,得到一个列表
print(s1.split('a',2))
s2 = ' python:666 '
print(s2.strip())
# 去除字符串的首尾空格
s3 = '6666python:6666'
print(s3.strip('6'))
s4 = ' python:6666 muzhou:777777'
print(s4.replace(' ',''))
"""
运算结果:
['111', 'b222', 'b333ab444']
python:666
python:
python:6666muzhou:777777
"""
列表类型
"""
列表:
1. 定义列表
2. 列表的下标 从0开始 0123....
3. 列表取值
"""
list1 = [1,2,3,4,"我爱你",[10,20,30]]
print(list1)
#输出列表list1
print(list1[5])
#取第五个下标的数据
print(list1[5][1])
#在第五个下标的数据里取一个字符
"""
运算结果:
[1, 2, 3, 4, '我爱你', [10, 20, 30]]
20
"""
"""
1.列表的长度 len()
2.更新列表中的值
"""
list_1 = [20, 30, 40, 50, 60, 70]
print(len(list_1))
#输出列表的长度
list_1[2] = 99
#将列表第二个下标的数据改为'99'
print(list_1)
"""
运算结果:
6
[20, 30, 99, 50, 60, 70]
"""
列表操作方法
添加数据
"""
append()
append(参数)将元素添加到列表后
参数:要添加的元素
extend()
extend(参数)将两个列表进行拼接(与append的区别是,他可以添加多个元素)
参数:要拼接的列表
insert()
insert(参数1,参数2)将元素添加到指定的位置
参数1:要添加的位置
参数2:要添加的元素
"""
li_one=[1,2,3,4]
li_two=[6,7]
li_one.append(5)
#将元素'5'添加到li_one列表后
print(li_one)
li_one.extend(li_two)
#将li_two拼接到li_one
print(li_one)
li_one.insert(5,'墨隐')
print(li_one)
"""
运算结果:
[1,2,3,4,5]
[1,2,3,4,5,6,7]
[1,2,3,4,5,'墨隐',6,7]
"""
删除数据
"""
del关键字
del 参数1 [参数2]删除指定下标的元素
参数1:要删除元素的列表
参数2:要删除元素的下标
remove()
remove(参数)删除与指定参数相同的元素(若有多个,只删除第一个)
参数:要删除的元素
pop()
pop(参数)移除指定下标的元素
参数:指定元素的下标
"""
li_one=[1,2,3,4,5,'墨隐',6,7]
del li_one[5]
print(li_one)
li_one.remove(7)
print(li_one)
li_one.pop(2)
print(li_one)
"""
运算结果:
[1,2,3,4,5,6,7]
[1,2,3,4,5,6]
[1,2,4,5,6]
"""
删除重复值
"""
set()
set(参数):删除列表中的重复值
"""
li1=[1,2,3,5,4,3,2,5,2]
li2=set(li1)
print(li2)
"""
运算结果:
{1, 2, 3, 4, 5}
"""
数据排序
"""
sort()
sort(参数1/参数2)按两种方法对元素进行排序
参数1:支持函数
参数2:reverse=False(升序,默认)/True(降序)
sorted()
sorted(参数)按升序排序列表
参数:列表名
reverse()
reverse(参数)将列表的内容颠倒并输出
参数:列表名
"""
li_one=[1,2,6,7,5,3,4]
li_two=['tw','awef','serga','arf']
li_three=[1,2,6,7,5,3,4]
li_four=[1,2,6,7,5,3,4]
li_one.sort(reverse=True)
print(li_one)
li_two.sort(key=len)
print(li_two)
abc=sorted(li_three)
print(li_three)
li_four.reverse()
print(li_four)
"""
运算结果:
[7,6,5,4,3,2,1]
['tw','arf','awef','serga']
[1,2,3,4,5,6,7]
[4,3,5,7,6,2,1]
"""
列表练习
"""
输入5个字符串并以列表形式输出
"""
nameli=[]
for i in range(5):
name=input("请输入:")
nameli.append(name)
print(nameli)
"""
将字符串中的每个字符按列表形式输出
"""
str='afawurbaiweunae'
list=[]
for i in str:
list.append(i)
print(list)
print(type(list))
"""
编写一个能查找列表元素的程序
"""
nameli=['a1','a2','a3','a4','a5','a6']
name=input("请输入要查找的ID:")
if name in nameli:
print("找到了")
else:
print("没有")
元祖类型
"""
元组也是一种数据容器,使用小括号" ( ) "表示,其使用场景与列表相似,这意味着能使用列表的地方,基本上都能使用元组,包括列表推导式、切片等操作。元组与列表的唯一区别是元组不可变的。
元组的元素类型可以不统一
"""
t = ("hello",66,-20,3.66,[10,20,30])
print(t)
"""
运算结果:
('hello', 66, -20, 3.66, [10, 20, 30])
"""
#元组的拼接
t1 = ("hello","world","python")
t2 = ([1,2],[3,4],[5,6,7,8])
t3 = t1+t2
t3[3][0] = "墨隐老师666"
print(t3)
"""
运算结果:
('hello', 'world', 'python', ['墨隐老师666', 2], [3, 4], [5, 6, 7, 8])
"""
"""
关于元祖/列表/字符串的一些共同操作
len() max() min()
"""
a = (1,2,3,4)
print(len(a))
print(max(a))
print(min(a))
"""
运算结果:
4
4
1
"""
集合类型
"""
集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重,集合中默认去重。
创建集合
1、变量名=set(元素) 字符串/列表/元祖/字典
2、变量名={元素,元素,,,} 元祖/字符串/数字
3、元素是唯一的,用于列表的去重
"""
# 字符串
a = set("1234") # {'1', '2', '4', '3'}
# 列表
b = set([10,20,30]) # {10, 20, 30}
# 元祖
c = set((1,2,3,4)) # {1, 2, 3, 4}
# 字典
d = {
"年龄":18,
"名字":"慕洲"
}
f = set(d) # {'名字', '年龄'}
# 用大括号创建集合
aa = {1,2,3,(1,2,3),"123"}
#bb = {d} # 字典/列表 用大括号的时候是不可行的
#列表的去重
a = set([1,2,1,1,1,1,1])
#元祖去重
bb = set((1,1,1,1))
# 字典去重 ?
cc = {
"名字":"慕洲",
"名字":"小明"
}
ff = set(cc)
# 字符串去重
zz = set("1211111")
#print(zz)
abc = {1,2,1,1,(1,1,111)}
print(abc)
添加元素
"""
add()
add(参数)往集合中添加元素 数字/字符串/元祖
参数:添加的元素
update
update(参数)可以将集合合并,随机排列
参数:要合并的集合
"""
a = {1, 2, 3}
a.add(6)
print (a)
a.add("慕洲老师")
a.add((1, 2, 3))
print (a)
b = {"w", "b", "a"}
a.update(b)
b.update(a)
print(b)
"""
运算结果:
{1, 2, 3, 6}
{1, 2, 3, 6, (1, 2, 3), '慕洲老师'}
{1, 2, 'b', 3, 6, 'a', (1, 2, 3), 'w', '慕洲老师'}
"""
删除元素
"""
remove
remove(参数) 如果集合中有改元素则直接删除,如果没有,程序报错
参数:要删除的元素
pop
pop(参数) 随机删除集合中的元素 如果集合没有元素,程序报错
参数:要随机删除的集合
discard
discard(参数) 如果元素存在直接删除 如果元素不存在不不会报错
参数:要删除的元素
"""
a = {"python", "学", "慕洲"}
a.remove("python")
print(a)
a.pop()
print(a)
a.discard("123")
print(a)
"""
运算结果:
{'学', '慕洲'}
{'慕洲'} #这一项随机
{'慕洲'}
"""
集合的交集和并集
"""
交集
使用 "&" 符号连接多个集合,得到相同的元素
并集
使用"|"符合连接多个集合,得到集合中的全部数据
"""
s1 = {1,2,3,5}
s2 = {1,2,6,7}
s3 = s1 & s2
print(s3)
s4 = s1 | s2
print(s4)
"""
运算结果:
{1, 2}
{1, 2, 3, 5, 6, 7}
"""
字典类型
"""
字典:
字典是一种映射类型,它的元素是键值对,字典的键必须为不可变类型,且不能重复
键可以是任意不可变类型(元祖/字符串/数字)
1 字典的创建方式
1.1 直接使用 "{}"
1.2 使用dict()
2 空字典
"""
a = {
"姓名": "墨隐",
1: 18,
(1,2,3):"123"
}
b = dict((["年龄","18"],["名字","墨隐"]))
c = {} # 直接写大括号 表达的是字典
# 集合
d = set() # 表达空集合 用 set()
print(d)
print(a["姓名"])
print(b)
print(c)
print(d)
"""
运算结果:
墨隐
{'年龄': '18', '名字': '墨隐'}
{}
set()
"""
字典操作
"""
字典的 增删改查的操作
增加
删除
修改
查找(获取)
"""
d = {"名字":"慕洲","年龄":18}
d["技能"] = "python技能"
# 字典 增加操作
print(d)
del d["技能"]
# 字典的删除操作 del关键字
print(d)
d["名字"] = '小明'
# 字典修改操作
print(d)
print(d["年龄"])
# 获取到 对应值
print(d)
"""
运算结果:
{'名字': '慕洲', '年龄': 18, '技能': 'python技能'}
{'名字': '慕洲', '年龄': 18}
{'名字': '小明', '年龄': 18}
18
{'名字': '小明', '年龄': 18}
"""
字典操作方法
"""
get函数
get(参数)用于从字典获取指定键的值
在get函数中可以设置默认值,当get函数没有获取到对应键时,get函数会将默认值返回
参数:需要数据对应的键值
"""
d = {
"名字":"墨隐",
"年龄":18
}
r = d.get("名字")
r1 = d.get("技能")
r2 = d.get("技能","python技能")
print(r)
print(r1)
print(r2)
print(d)
"""
运算结果:
"""
将字典以列表的形式显示
"""
keys函数
keys(参数)将以列表的形式返回字典中的 所有键
参数:
items函数
items(参数)将以列表的形式返回字典中的所有键 值对
参数:
values函数
values(参数)将以列表的形式返回字典中的所有 值
参数:
"""
f = {
"名字":"墨隐",
"年龄":18,
"技能":{
"技能1":"python",
"技能2":"java"
}
}
print(f.keys())
d = {
"名字":"墨隐",
"年龄":18
}
r = d.items()
r1 = d.values()
print(r)
print(r1)
"""
运算结果:
dict_keys(['名字', '年龄', '技能'])
dict_items([('名字', '慕洲'), ('年龄', 18)])
dict_values(['慕洲', 18])
"""
clear 将字典清空
"""
clear函数
clear(参数)用于将字典清空
参数:字典名
"""
d = {
"名字":"墨隐",
"年龄":18
}
d.clear()
print(d)
print(len(d))
"""
运算结果:
{}
0
"""
copy 创建字典的副本
"""
copy函数
copy(参数)用于创建字典的副本,修改原字典对象,不会影响其副本。
参数:要复制的字典名
"""
d2 = {
"名字":"墨隐",
"年龄":18
}
d3 = d2.copy()
del d2["名字"]
print(d2)
print(d3)
"""
运算结果:
{'年龄': 18}
{'名字': '墨隐', '年龄': 18}
"""
fromkeys 创建一个新的字典
"""
fromkeys函数
fromkeys(参数1,参数2)用于创建一个新的字典,
参数1:是一个序列(列表/元祖/集合),用于作为字典的键。:
参数2:可以是任何数据类型,作为每个键的值。
"""
d = {}
d1 = d.fromkeys(("名字","年龄"),(1,2))
print(d1)
"""
运算结果:
{'名字': (1, 2), '年龄': (1, 2)}
"""
pop 字典中移除指定键
"""
pop函数
pop(参数)用于从字典中移除指定键,并返回该键所对应的值
参数:要移除的键
"""
d = {
"名字":"墨隐",
"年龄":18
}
r = d.pop('名字')
print(r)
print(d)
"""
运算结果:
墨隐
{'年龄': 18}
"""
popitem 从字典中删除最后一项
"""
popitem函数
popitem(参数)用于从字典中删除最后一项,并以元组形式返回该项所对应的键和值
参数:要移除的键的字典名
"""
d = {
"名字":"墨隐",
"年龄":18
}
r= d.popitem()
print(r)
print(d)
"""
运算结果:
('年龄', 18)
{'名字': '墨隐'}
"""
"""
setdefault函数
setdefault(参数1,参数2)用于设置键的默认值,
参数1:键
参数2:值
若在字典中该键已经存在,则忽略设置;若不存在,则添加该键和值
"""
d2 = {
"名字":"墨隐",
"年龄":18
}
d2.setdefault("名字","小明")
print(d2)
#若在字典中该键已经存在,则忽略设置;若不存在,则添加该键和值
d3 = {
"名字":"慕洲",
"名字":"小明"
}
#当有两个值的键相同时,只会显示最后一个
print(d3)
"""
运算结果:
{'名字': '小明'}
"""
update 将字典2的值更新到字典1
"""
字典的操作方法:
update函数
update(参数)用于将字典2的值更新到字典1
参数:字典2
若字典2的键在字典1已经存在,则对字典1进行修改;
若不存在,则对字典1进行添加
"""
d1 = {
"名字": "慕洲"
}
d2 = {
"名字": "墨隐"
}
d1.update(d2)
print(d1)
d3 = {
"年龄": 18
}
d1.update(d3)
print(d1)
"""
运算结果:
{'名字': '墨隐'}
{'名字': '墨隐', '年龄': 18}
"""