前言

!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022 Python的web开发(完整版) 入门全套教程,零基础入门到项目实战

数据结构

1. 字符串类型 str

1.1 定义

上个文件找

1.2 独有功能

  • 大写  upper

  • 小写  lower

  • 是否是数字  isdecimal

  • 替换 replace

  • 去空白 strip

  • 切割 split 切割后得到的是一个列表

    file_name = "hello.py"
    
    # 如何获得扩展名
    data_list = file_name.split(".") # 根据传进去的参数分割
    print(data_list[-1])
    text = "计算机, root, 18, 123@qq.com"
    data_list = text.strip().split(",")

  • 字符串拼接

    • +运算符
    • 字符串格式化
    • 列表里面有很多字符串,想让他们按照某个连接符拼接起来
    data_list = ["计算机", "科学", "与", "技术"]
    new_data = " ".join(data_list)
    print(new_data)
    # 计算机 科学 与 技术
  • 字符串转换成字节类型 encode()

    字符串    Unicode
    字节 utf-8
    data = "computer"
    v1 = data.encode("utf-8")
    print(v1)
    # b'computer'
    data = "哈哈"
    v1 = data.encode("utf-8")
    print(v1)
    # b'\xe5\x93\x88\xe5\x93\x88'
    data = "哈哈"
    v1 = data.encode("utf-8")
    v2 = v1.decode("utf-8")
    print(v1, v2) # b'\xe5\x93\x88\xe5\x93\x88' 哈哈
  • 长度补足 center ljust rjust 让内容放中间/左边/右边 自己想补啥就补啥

    name = "computer"
    text = name.center(13, "*")
    print(text)

    name = "computer"
    text = name.rjust(13, "#")
    print(text)
    # computer#####
    name = "computer"
    text = name.rjust(13, "#")
    print(text)
    # #####computer
  • 长度的补足 只能在左边补0 zfill() 二进制补0用的比较多

    name = "computer"
    v1 = name.zfill(10)
    print(v1)
    # 00computer

1.3 公共功能

  1. 长度 len

    name = "cs"
    print(len(name))
    # 2
  2. 索引 []

    text = "computer"
    print(text[1]) # o
    print(text[-2]) # e
  3. 切片 [::] 字符串是不可变的! 记住喔

    text = "computer"
    text[0:2] # 前闭后开 co
    text[2:5] # 前闭后开 mpu
    text[2:-1] # 前闭后开 mpute
    text[2:] # 前闭后开 mputer
    text[:-1] # 前闭后开 compute
    text[:] # 全部 computer
  4. 循环 for/while循环

    name = "computer science"
    
    for item in name:
    print(item) count = 0
    while count < len(name):
    print(name[count])
    count += 1
    # range 函数: 生成一个数字列表 左闭右开 一般和for循环结合使用
    v1 = range(5) # v1 = [0, 1, 2, 3, 4]
    v1 = range(5, 10) # v1 = [5, 6, 7, 8, 9]
    v2 = range(5, 10, 2) # [5, 7, 9]
    v2 = range(10, 0, -1) # [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
    for i in range(1, 100):
    print(i, end=" ")
  5. 练习题 略

2. 列表

有序且可变的容器,元素可以使多个不同的数据类型。

2.1 定义

data_list = [1, 2, "计算机", 2.5]
data_list = []
data_list.append(1)

注意:列表是可变类型,绝大部分功能是对原列表进行操作

2.2 独有功能

  1. 追加 append

    data_list = []
    data_list.append(11)
    data_list.append('计算机')
  2. 插入 insert 插入到具体的位置

    user_list = ["计算机", "电脑", "计算器"]
    user_list.insert(1, "超级计算机")
    print(user_list) # ['计算机', '超级计算机', '电脑', '计算器']
  3. 按值删除 remove 如果有重复的值 只会删除从左到右第一个匹配的值 如果没有找到值,则会报错 —— 可以利用in关键字判断是否存在值。

    data_list = ['计算机', '超级计算机', '电脑', '计算器']
    data_list.remove('计算机')
    print(data_list) # ['超级计算机', '电脑', '计算器']
    import random
    random.choice(data_list) # 去列表里面随机抽取一个值 不会改变列表的值
  4. 按索引删除 pop 如果pop里面不传参数,那么删除最后一个元素。返回删除的元素值

    data_list = ['计算机', '超级计算机', '电脑', '计算器', 'computer', 'science']
    delete_data = data_list.pop(2)
    print(data_list)
    print(delete_data)
    '''
    ['计算机', '超级计算机', '计算器', 'computer', 'science']
    电脑
    '''
  5. 清空列表 clear

    data_list = ['计算机', '超级计算机', '电脑', '计算器', 'computer', 'science']
    print(data_list.clear())
  6. 列表元素排序 sort

    data_list = [10, 2, -1, 92, 10, 25, 65]
    data_list.sort() # 从小到大排序
    print(data_list)
    data_list.sort(reverse=True) # 从小到大排序
    print(data_list) """
    [-1, 2, 10, 10, 25, 65, 92]
    [92, 65, 25, 10, 10, 2, -1]
    """
    data_list = ['计算机', '科学', '技术']
    data_list.sort()
    print(data_list)
    # ['技术', '科学', '计算机'] —— 基于unicode排序

2.3 公共功能

  • 长度 len(list_name)

  • 索引 从0开始 获取值 列表是可变类型

  • 删除 del user_list[2]

  • 切片

    data_list = []
    data_list[0:4]
    data_list[0:-1]
    data_list[2:]
    data_list[:] # 下面这样也是可以的
    data_list = list()
    print(data_list) # []
  • 修改

    user_list = [11, 22, 33, 44]
    user_list[0:2] = [100, 200, 300, 400]
    user_list # [100, 200, 300, 400, 33, 44]
  • 删除

    del user_list[0:2]
  • for循环

    user_list = [11, 22, 33, 44]
    for item in user_list:
    对item做操作 for i in range(0, len(user_list)):
    对user_list[i]操作

2.4 嵌套

data_list = [
"computer",
"science",
125,
259,
[11, 22, 33, [10, 20, 30]],
[["good", "job", "friends"], 44, 55, 66],
[77, 88, 99]]
print(data_list)
# ['computer', 'science', 125, 259, [11, 22, 33, [10, 20, 30]], [['good', 'job', 'friends'], 44, 55, 66], [77, 88, 99]]
# 取值
data_list[0]
data_list[0][-1]
data_list[1]
data_list[0][2]
data_list[1][2]
data_list[-2][2[-2]] # computer
# r
# science
# m
# i
# job

练习题

用户注册,提示用户输入用户名和密码如果输入了Q/q终止。

使用list数据结构

3 元组

有序且不可变的容器

data = (11, 22, 33)
print(data)

3.1 定义

元组元素不允许被替换 长度也不允许被修改 但是元组里面如果有可变元素,那这些可变元素是可以改变的。

3.2易错点

v1 = (11, 22)   # 正确 元组
v2 = (33, 44,) # 正确 元组
v3 = (666)   # v3 = 666 是个值 不是元组
v4 = (666,) # 是个元组

v1 = ( (1), (2), (3) )
v2 = (1, 2, 3)
v3 = ( (1,), (2,), (3,) )
print(v1)
print(v2)
print(v3)
# (1, 2, 3)
# (1, 2, 3)
# ((1,), (2,), (3,))

3.3 独有功能

3.4 公共功能

  • 长度 len
  • 索引
  • 切片 注意元组不可变
  • for循环 和列表list一样

3.5 嵌套

...

写在最后

由于这些笔记都是从typora里面粘贴过来的,导致图片会加载失败,如果想要带图片的笔记的话,我已经上传至github,网址(​​https://github.com/wephiles/python-foundation-note​​​)如果github上不去的话也可以去我的gitee下载,网址(​​https://gitee.com/wephiles/python-django-notes​​)。欢迎大家来下载白嫖哦,最后,如果可爱又善良的你能够给我github点个star,那你将会是这个世界上运气最好的人喔。

Python基础--python数据结构(字符串、列表和元组)的更多相关文章

  1. python学习4—数据结构之列表、元组与字典

    python学习4—数据结构之列表.元组与字典 列表(list)深灰魔法 1. 连续索引 li = [1,1,[1,["asdsa",4]]] li[2][1][1][0] 2. ...

  2. Python基础系列----序列(列表、元组、字符串)

    1.定义                                                                                               1 ...

  3. Python基础(4)列表、元组、字符串、字典、集合、文件操作

    列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 详见:http://www.cnblogs.com/alex3714/articles/5717620.html 1.列表和元 ...

  4. Python基础:序列(列表、元组)

    一.概述 列表(list)是由一个个 Python对象 组成的序列.其中,Python对象 可以是任何类型的对象,包括 Python标准类型(数值.字符串.列表.元组和字典)以及 用户自定义类型(类) ...

  5. python基础教程-第二章-列表和元组

    本章将引入一个新的概念,:数据结构.数据结构是通过某种方式(例如对元素进行编号)组织在 一起的数据元素的集合,这些数据元素可以是数字或者字符,甚至可以是其他数据结构.在python中,最基本的数据结构 ...

  6. Python基础(3)--列表和元组

    Python包含6种内建序列:列表.元组.字符串.Unicode字符串.buffer对象.xrange对象 本篇主要讨论最常用的两种类型:列表.元组 本文地址:http://www.cnblogs.c ...

  7. python基础教程总结1——列表和元组

    1.序列 python含有6种内建序列——列表,元组,字符串,Unicode字符串,buffer对象,xrange对象 2.通用序列操作 2.1 索引 注:   input()根据用户输入变换相应的类 ...

  8. python基础_字典_列表_元组考试_day4

    1.请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li=['alex','eric','rain'] li=['alex','eric','rain'] v="_".jo ...

  9. python基础(三)--列表、元组、字典

    一.列表: 有序序列,支持索引.切片.循环(for,while) 元素可以被修改: 元素可以是任何数据类型(数字,字符串,列表,布尔值...),可以嵌套: ##增 1.append(object)   ...

  10. python基础知识-集合,列表,元组间的相互装换

    在python中列表,元祖,集合间可以进行相互转化, def main(): set1={'hello','good','banana','zoo','Python','hello'} print(l ...

随机推荐

  1. js面试题-代码实现

    新 API 最新的 url 参数获取的 API? URLSearchParams // 有如下一个url: http://localhost?a=1&b=2 function getUrlPa ...

  2. 中电金信:从“互联网+”到“人工智能+”,TA也藏不住了!

    ​ 两会期间,人工智能频上头条 其中"人工智能+"首次进入2024政府工作报告 为人工智能产业的发展注入一剂强心针   从"互联网+"到"人工智能+& ...

  3. Qt音视频开发02-海康sdk解码(支持句柄/回调/gpu模式/支持win/linux)

    一.前言 为何还要选用使用海康sdk,之前不是ffmpeg已经牛皮吹上天了吗?这个问题问得好,那是因为无论ffmpeg也好还是vlc/mpv之类的,都是实现的播放相关,不同的监控硬件厂家对应设备还有很 ...

  4. Pelco-D控制协议

    1. 通令参数: 标准速率为4800bps,无校验,  8位数据位,1位停止位 2.命令串格式: 一个PTZ控制命令为7字节的十六进制代码,格式如下: Word  1 Word2 Word 3 Wor ...

  5. 在Win7操作系统上安装VS2017报错:安装程序清单签名验证失败

    方法1: 开始-运行-gpedit.msc-计算机配置-Windows 设置-安全设置-本地策略-安全选项-系统机密:将FIPS兼容算法用于加密.哈希和签名-设置禁用-退出安装程序,重新安装一次.亲测 ...

  6. 有关主席树的一些 trick

    主席树做题记录. 主席树,即可持久化权值线段树. P3248 [HNOI2016] 树 难爆了这题.题目中会多次把模板树的某个子树放到大树上的某个节点下,我们把这一整个子树看作一个大节点,把模板树.大 ...

  7. MCU命令

    三D打印常用MCU命令 allocate_oids count=42 分配 42 个 OIDs,后续用于标识和管理不同的设备或组件 config_spi oid=0 pin=PD7 cs_active ...

  8. Solution -「POI 2013」LAB-Maze

    \(\mathscr{Description}\)   Link.   构造一个边平行与坐标轴, 顶点是整点, 相邻边互相垂直, 且逆时针遍历顶点时转向 (向左或向右) 符合给定字符串的不自交多边形. ...

  9. 【转】Mysql索引失效的情况

    在工作中经常能遇到索引失效的情况,只要索引失效就导致了SQL查询慢,服务响应慢,用户体验差的情况:所以下面我们就讨论一下MySQL中索引失效的情况 口诀 全职匹配我最爱,最左前缀要遵守: 带头大哥不能 ...

  10. 《C++并发编程实战》读书笔记(3):并发操作的同步

    1.条件变量 当线程需要等待特定事件发生.或是某个条件成立时,可以使用条件变量std::condition_variable,它在标准库头文件<condition_variable>内声明 ...