python基础学习(2)

在这里插入图片描述

数据类型

数据类型是什么:

程序本质上就是用于去处理计算机中的数据的流程,计算机里面有图片,视频,文本,音乐等不同类型的数据。在Python中同样对数据进行了划分,正是因为有了各种数据类型,程序才可以“有的放矢”地进行各种不同数据操作而不至于乱套。
不同类型的数据,计算机在底层给存储该数据分配的默认空间是不一样的。拿现实生活来说,我们给手机配一个包装盒绝对不会用鞋盒那么大的盒子,避免浪费资源

python中的数据类型:
在这里插入图片描述
Python3 中有六个标准的数据类型:

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

注意:在不确定函数是什么类型时,使用 **type()**查询

学习数据类型我们主要学习如何对数据类型进行 增删改查

# 确定函数为列表类型
list_01 = ["本是同根生,相煎何太急"]
print("list_01的数据类型为:", type(list_01))

Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

字符串

字符串的构造

字符串之间可以相互进行拼接,用format或 % 符号构造都是较好的选择:

str_01 = "学习是一个缓慢的过程"
str_02 = "不管如何枯燥,我们都要坚持"
print("{},%s".format(str_01),% (str_02))

字符串的截取(重点)

在这里插入图片描述

字符串的截取是学习字符串的重点,不需要我们死记硬背,更多的是需要我们多做练习,灵活运用。
字符串中每一个元素都有一个默认的索引值,对字符串的增删改查多数在索引值的基础上进行的。
在这里插入图片描述
注意

  • 字符串的索引都是从0开始。
  • 空格,标点符号都为一个元素
  • 截取字符串时,[ ] 左闭右开 取左不取右
str_01 = "恰同学少年,风华正茂;书生意气,挥斥方遒。"
print(str_01) # 打印字符串
print(len(str_01))  # 查询字符串元素个数
print(str_01[1])  # 打印”同“元素
print(str_01[0:5])  # 打印”恰同学少年“,不包括索引值最后一位”5“
print(str_01[0:-1])  # 截取索引值为"恰"开始直到字符串结尾的前一个:"遒",-1的索引值表示最后一个
print(str_01[0:len(str_01)])  # 截取字符串0开始,到结束的字符串
print(str_01[:-1])  # 打印整段字符串至结尾前一个元素,”:“前未设置参数,默认是从0开始
print(str_01[::-1])  # 从后往前打印字符串,步长为-1
print(str_01[200])  # 索引值超过str_01内的下标值

字符串的查询

当我们需要对字符串中某些元素检索时,不知道下标该怎么办呢 ?

# 定义字符串str_02:
str_02 = "后宫佳丽三千人,三千宠爱在一身。"

str_02.find("宠") # 查找括号内的元素,查找顺序:左——>右 如果找到返回第一次出现的下标,查找不到 返回-1。
str_02.rfind("宠")  # 右——>左
str_02.index("佳丽") # 跟 # find 一样 左——>右 不同点:查找不到结果报错 "佳丽"为一个元素,一个整体。
str_02.rindex("动画")  # 右——>左 

str_02.count("三") # 统计括号内元素出现的次数

#  startswith 与 endswith 后期多用于爬虫网页的检索
str_03 = "https://www.baidu.com"
str_03.startswith("https") # 判断字符串是否为https开头
str_03.endswith(".com")   # 判断字符串是否以.com结尾

------以下了解即可------

str_02.isalnum()   # 判断是否含有特殊字符
str_02.isalpha()   # 是否是纯英文
str_02.isdigit()   # 是否为纯数字

str_02.rjust(50)  # 将myStr字符串在50长度的空间向右看齐
str_02.ljust(50)  # 将myStr字符串在50长度的空间向左看齐
str_02.center(50) # 将myStr字符串在50长度的空间居中显示

字符串的替换与切割

查询到字符串就要就字符串进行修改,切割等的操作。

# 定义字符串 str_04
str_04 = "回眸一笑百媚生,\n六宫粉黛无颜色。"

# 字符串的替换
str_04.replace("哭", "笑")

# 字符串的切割
str_04.split(",")  # 按照括号的元素进行分割,括号内的元素不存在。
str_04.splitlines()  # 将str_04按照换行符(\n)进行切割

str_05 = "亲朋无一字,老病有孤舟。"
str_05.partition("老")  # 将字符串str_05按照默认从左往右出现的第一个"老"分割成若干部分,小没有删除
str_05.rpartition("老")  # 将字符串str_05按照从右往左出现的第一个"老"分割成若干部分,小没有删除

str_05.lstrip()  # 去除字符串name左边的空格
str_05.rstrip()  # 去除字符串name右边的空格
str_05.strip()  # 去除字符串两边的空格

字符串的大小写

str_06 = "The wind was rushing and the apes were whistling."
str_06.lower()      # 将字符串统一转化成小写字母
str_06.upper()      # 将字符串统一转化成大写字母
str_06.capitalize() # 将字符串str_06的首字母大写
str_06.title()      # 将字符串的每一个单词的首字母大写

在这里插入图片描述

字符串的方法有很多,我们只需要对常用的方法熟悉即可:

  1. find 方法
  2. index 方法
  3. count 方法
  4. startswith 和 endswith 方法
  5. replace 方法

列表

列表(list)是python常用的类型之一,是可变类型,特点为:

  • 列表中元素是个有序的集合,下标从0开始,与字符串相似;
  • 列表的符号为[ ] , 内部元素用逗号间隔开;
  • 内部元素由多个数据类型构成, 数据类型可相同也可不同;
    在这里插入图片描述
    定义列表:
# 定义空列表
list_01 = list()
list_01 = []
# 定义一个整数类型的列表
list_03 = [1, 2, 3, 4]
# 定义一个字符串类型的列表
list_04 = ["我", "爱", "你", "的", "点", "点", "滴", "滴"]
# 定义不同类型的列表
list_05 = [1, "学习"{"姓名": "小张", "性别": "男"}, True]

增加列表

append : 增加一个元素在列表的最后
insert : 在指定位置添加元素 (在下标的位置进行添加)
extend : 合并两个列表

# 定义一个列表
list_01 = [23, "存在即合理",True, {"爱好": "干饭", "工作": "学生"}, [456]]

# append()
list_01.append("命运")

# insert
list_01.insert(2, "生活的意义")

# 定义被合并的列表
list_02 = ["没有公平可言", "坚持就是胜利"]

# 将list_02的元素添加到list_01中,添加到list_01的末尾,list_02的数据保持不变。
list_01.extend(list_02)

删除列表

pop : 从列表最后删除一个元素
remove : 删除指定的内容,默认从左往右的第一个
del : 删除指定下标的元素

# 定义一个列表
list_03 = ["谈笑有鸿儒", True, "Date"]

# pop 删除列表中最后一个元素
list_03.pop()

# 删除列表中指定的元素
list_03.remove("谈笑有鸿儒")

# 根据下标删除列表中的元素
del list_03[0]

# 打印列表list_03,列表内元素已删空
print(list_03)

修改列表

根据下标修改列表中的元素,找出对应的下标,直接赋值

# 定义一个列表
list_04 = ["岁月蹉跎", "python", "元素"]

# 修改下标为2的元素 "元素"
list_04[2] = "基础学习"

查看列表

查看list中的元素和字符串下标查询基本一致
xx in 列表 :判断元素是否存在列表中
xx not in 列表: 判断元素是否不存在列表中

# 定义一个列表
list_05 = ["时间苦短", "python用起", {"住址":"中国"}]

# 查询列表中元素的下标
list_05.index("时间苦短")

# 查询下标0-2的元素
list_05[0:3]

# 判断元素是否存在列表中,方法1
if "python" in list_05:
	print("存在")
else:
	print("不存在!")

# 判断元素是否存在列表中,方法2
if "python" not in list_05:
	print("不存在")
else:
	print("存在!")

# 历遍元素
for i in list_05:
	print(i)

for i in range(len(list_05)):
	print(i)

列表排序

将列表中的数字或字母按照顺序排序

  1. sort 将元素按照从小到大排序
  2. reverse 将函数 在sort函数的基础上,进行反序
list_06 = [1, 50 ,40, 80, 100]
list_06.sort() # 将列表中元素从小到大排序

list_06.reverse() # 对升序后的列表进行反转就是降序

list_07 = ["e", "c", "a", "n", "u", "p"]
list_07.sort() # 将列表中元素从小到大排序

list_07.reverse() # 对升序后的列表进行反转就是降序

# 方法二 降序
list_07.sort(reverse=True)  # reverse 参数 

字符串与列表之间的转换

使用list(str),强制将字符串str转换成列表

# 定义字符串
str_01 = "字符串与列表之间的转换"

# 将字符串转换成字符串
list_09 = list(str_01)

使用join将列表list转换成字符串str

list_10 = ["我", "是", "不", "是", "你", "最", "疼", "爱", "的", "人"]

# 将列表转化成字符串
str_02 = "".join(list_10)

在这里插入图片描述

元组

元组 只能对元组内的元素进行查询,特点如下:

  • 由一个或者多个数据构成,数据的类型可以不相同也可以相同;
  • 元组中的数据需要写在 () 中括号内部,数据与数据之间用逗号隔开;
  • 元组是一个有序的集合,下标索引默认重 0 开始,和字符串类似;
  • 元组的数据不能被修改;

元组的定义

# 定义空元组
tuple_01 = tuple()

# 查看数据
type(tuple_01)

# 定义一个元组
tuple_02 = ("热爱生活"50, {"元组": "不可修改与删除"})
print(tuple_02)

查询数据

tuple_02= ("python",False,2.5,40,"tuple") # 元组中的数据可以由不同类型的数据构成
type(tuple1) # 通过内置函数type获取数据类型
tuple1[0] # 获取元组中索引值为1 的数据
tuple1[len(tuple1)-1] # 查询元组中的最后一个元素,注意是len(tuple)-1,并非len(tuple),是一个元素。
tuple1[1:4] # 获取元组索引值1-4的数据
tuple1[:5] # 如果冒号之前没有设置参数,默认重0开始,表示获取元组索引值0-5的数据
tuple1[3:] # 如果冒号之后没有设置参数,默认到元组最后一个数据介绍,包括最后一个数据

元组:删除,修改–报错

元组类型是不可变类型,删除,删除数据时系统会报错,例如:在传输文件给其他用户时,不希望其他用户对本文件进行修改等操作,只能查看数据。

tuple_03 = ("发奋图强"50True, "Del")

# 修改下标为了0的元素
tuple[0] = "海南"
# 编译器会报错:TypeError: ‘tuple’ object does not support item assignment(翻译:元组tuple不支持修改)

del tuple[0]
# 编译器会报错:TypeError: ‘tuple’ object doesn’t support item deletion(翻译:元组tuple不支持删除)

在这里插入图片描述

字典

字典是常用的数据类型,与字符串/列表/元组 不同,字典元素是一对键值对:keyh和value,有以下特点:

  • 由一个或者多个键值对构成,键值对的类型可以不相同也可以相同;
  • 字典中的键值对需要写在 { } 中括号内部,键值对中的 key 和 value 用 : 隔开,键值对与键值对之间用逗号隔开;
  • 字典是一个无序的集合;
  • 字典中 key 具有唯一性;
    在这里插入图片描述

定义字典

# 字典空字典
dict_01 = dict()
dict_01 = {}

# 差查询字典的数据类型
type(dict_01)

# 查询字典中的元素个数
len(dict_01)

dict_02 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}

注意:如果字典中出现相同的 key 值,只有最后一个 key / value 有效,前面相同的 key / value 会被覆盖,这就是字典 dict 所谓的唯一性

增加字典

  1. 使用字典[key] = value的方式。
  2. fromkeys( ) 括号内元素创建key,创建字典,value默认为None
# 创建空字典
dict_03 = {}
dict_03["姓名"] = "老李"
dict_03["住址"] = "老王隔壁"
dict_03["职业"] = "卖帽子"

# formkeys 创建键值对,value为None
dict_03.formkeys("出行工具")

# 打印字典元素个数
print(len(dict_03))

# 打印字典全部元素
print(dict_03)

删除字典

  1. 删除字典中的数据,需要根据键值对中的 key 值来删除对应的键值对,删除使用 del 关键字;
  2. 使用clear清空整个字典,剩下一个空字典;
dict_04 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}

# 根据key删除value
del dict_04["姓名"]

# clear 清空字典所有键值对
dict_04.clear

修改字典

  • 字典是无序的,没有下标值。
  • 对key进行操作,修改value。
dict_05 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}
 修改姓名的值
dict_05["姓名"] = "小王"

查询字典

1.操作和删除数据/修改数据一样,直接根据键值对中的 key 值操作即可;
2. setdefault函数:括号内输入key,查询value,如果不存在就添加一个键,值为None;

dict_06 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}

# 根据key查询
dict_06["姓名"]

# 根据setdefaul查询,查询不到就添加key值,value为None
dict_06.setdefaul("生日")

合并字典

update函数:将一个字典添加到另外一个字典的末尾,把两个字典合并到一个字典,因为字典的key唯一性,所以当字典合并时候,key如果不存在就添加key,value,存在就修改value值

dict_07 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}
dict_08 = {"年龄": "19", "老婆": "无"}

# 将dict_08的元素添加到dict_07中;
dict_07.update(dict_08)

print(dict_07)

字典的历遍

获取所有的键(key)

dict_07 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}

# 获取字典所有的键
for i in dict_07.keys():
	print(i)

获取所有的值(value)

dict_07 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}

# 获取字典所有的键
for f in dict_07.values():
	print(f)

获取所有的键值对

dict_07 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}

# 获取字典所有的键值对 方法一
for test in dict_07.items():
	print("key=%s:value=%s" % (test[0], test[1]))

# 获取字典所有的键值对 方法二
for test_1,test_2 in dict_07.items():
	print("key=%s:value=%s" % (test_1, test_2))

返回最后一个键值对

dict_08 = {"姓名": "老王", "住址": "老李隔壁", "职业":"修下水道"}

# 返回最后一个键值对
print(dict_08.popitem())

拷贝copy字典

dict_09 = {}
# 字典拷贝
dict_10 = dict_09.copy("姓名": "老王", "住址": "老李隔壁", "职业":"修下水道")
print(dict_10)
print(dict_09)

重要提示

数据类型中,我们主要对数据掌握增删改查的操作,对列表和字典的操作要熟悉。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值