Python基础——03_数据序列

目录:

  • 第06节 字符串
  • (1)下标/索引
  • (2)切片----语法、方向
  • 🔺(3)字符串常用操作方法----查找(语法、find、index、count、r)、修改(replace-替换,split- 分割,join-合并,大小写转换,删除空白字符、对齐)、判断
  • (4)字符串输出输入

  • 第07节 列表和元组
  • (1)列表的格式
  • (2)列表的常用操作–增删改查、判断、复制
  • 🔺(3)列表的循环遍历
  • (4)列表的嵌套使用
  • 🔺(5)实例应用
  • (6)元组tuple与列表的区别
  • (7)元组的定义、常见操作(只支持查找)

  • 第08节 字典和集合
  • (1)创建字典语法–键值对、有数据1、空2
  • 🔺(2)字典常见操作–增/改、删(del、clear)、查(key、函数4种)
  • 🔺(3)字典的循环遍历–4种
  • (4)集合创建、特点
  • 🔺(5)集合的常见操作–增(add、update)删(remove、discard)查(in、not in)

学习内容:

第06节 字符串

目录

  • (1)下标/索引
  • (2)切片----语法、方向
  • 🔺(3)字符串常用操作方法----查找(语法、find、index、count、r)、修改(replace-替换,split- 分割,join-合并,大小写转换,删除空白字符、对齐)、判断
  • (4)字符串输出输入

(1)下标/索引

print(strl[0])

(2)切片

  • 语法- 序列[开始位置下标 : 结束位置下标 : 步长]

  • 注意:正向从[0]开始;反向从[-1]开始;

  • 注意:结束位置不选

  • 注意:选取方向(下标开始到结束的方向)、步长方向

    如果选取方向和步长方向冲突,则无法选取数据

    # 切片测试
    stel = '012345678'
    print(stel[1:3:1])   # 12
    print(stel[::-1])   # 876543210--如果步长为负,表示倒叙选取
    print(stel[-4:-1])   # 567
    print(stel[-4:-1:-1])   # 无法选取数据
    print(stel[-4:-1:1])   # 567
    

(3)字符串常用操作方法

  • 查找-查找子串 在字符串中的位置或出现的次数

  • 注意:子串记得加引号

    • find( )–检测是否存在

      • 语法:字符串序列 . find (子串 , 开始位置下标 , 结束位置下标)
      • [开始位置下标 , 结束位置下标]-省略的话表示在整个字符串中查找
      • 返回值:存在返回字串开始位置的下标,否则返回 -1
    • index( )–与find( )语法相同,区别在于不存在不返回值,直接报错

    • rfind( )与rindex( )表示查找方向为-右侧开始

    • count( )–与find( )语法相同,返回值为子串出现次数

      stel01 = 'abcdefg'
      print(stel01.find('cd'))   # 2
      print(stel01.index('cd'))   # 2
      print(stel01.count('cd'))   # 1
      print(stel01.rfind('cd'))   # 2-下标仍从左往右计算
      
  • 修改-

    • replace( ): 替换
      • 语法-字符串序列. replace( 旧子串,新子串,替换次数)
      • [替换次数]可以不写–表示所有次数替换
      • replace函数有返回值,调用后,原字符串的数据没有修改,修改的是replace函数的返回值;说明字符串是不可变数据类型
    stel02 = 'hello word and hello word'
    stel02.replace('and', 'or')
    print(stel02)                      # 打印原来的字符串
    new_stel02 = stel02.replace('and', 'or')
    print(new_stel02)                  # 打印替换后的字符串
    
    • split( ): 分割
      • 语法-字符串序列. split( 分割字符,num)
      • num表示分割字符的次数,即返回数据num+1个
      • 返回一个列表;丢失分割字符
    print(stel02.split('and', 1)) # 打印['hello word ', ' hello word']
    
    • join( ): 合并列表为一个字符串
      • 语法-字符或子串.jion(多字符串组成的序列)
    list = ['a', 'b', 'c']
    print('*'.join(list))    # 打印a*b*c
    
    • 大小写转换
      • capitalize()–只把字符串第一个字符大写
      • title()–字符串每个单词首字母大写
      • lower()–大写转小写
      • upper()–小写转大写
    print(stel02.capitalize())    # 打印 Hello word and hello word
    print(stel02.title())    # 打印 Hello Word And Hello Word
    print(stel02.lower())    # 打印 hello word and hello word
    print(stel02.upper())    # 打印 HELLO WORD AND HELLO WORD
    
    • 删除空白字符-

      • lstrip()–删除字符串左侧空白字符
      • rstrip()–删除字符串右侧空白字符
      • strip()–删除字符串两侧空白字符
    • 字符串对齐-

      • ljust()–字符串左对齐,且可填充对应长度的新字符串
        • 语法-字符串序列.ljust(长度,填充字符)
      • rjust()–居中、同上
      • center()–居中、同上
      print(stel02.center(30, '*')) # 打印**hello word and hello word***
      
  • 判断-判断真假,返回值为True/False

    • startswith()/endswith–检查字符串是否以指定子串开头/结尾
      • 语法-字符串序列.startswith(子串,开始位置下标,结束位置下标)
      • [开始位置下标,结束位置下标]–可不写,默认检查开头/结尾
    • isalpha():如果字符串至少有一个字符,且所有字符都是字母,返回True
    • isdigit():如果字符串只包含数字,返回True
    • isalnum():如果字符串至少有一个字符,且所有字符为字母/数字,返回True
    • isspace():如果字符串中只包含空白,返回True

(4)字符串

  • 输出
    • print()输出、格式化输出 % 、f
  • 输入
    • input()
第07节 列表和元组

目录

  • (1)列表的格式
  • (2)列表的常用操作–增删改查、判断、复制
  • (3)列表的循环遍历
  • (4)列表的嵌套使用
  • (5)实例应用
  • (6)元组tuple与列表的区别
  • (7)元组的定义、常见操作(只支持查找)

(1)列表的格式

  • [数据1,数据2,数据3,…]
  • 列表可一次性存储多个数据,且可以为不同数据类型
  • 建议一个列表存储相同数据类型

(2)列表的常用操作–增删改查、判断、复制

  • 查找

    • 下标
    • 相关函数-
      • index()、count()–与字符串一样
      • len(序列名)–返回列表长度,即列表中数据的个数
  • 判断-是否存在–返回布尔值

    • in、not in
    • 语法-
    stel = ['a', 'b', 'c', 'd']
    print('a' in stel)    # 返回True
    print('a' not in stel)    # 返回False
    '''
    应用
    1、用户输入名字
    2、判断if...else...
    '''
    name = input('请输入名字')
    if name in stel:
        print('NO')
    else:
        print('Yes')
    
  • 增加

    • append():列表结尾追加数据
      • 语法-列表序列.append(数据)
      • 追加的数据是序列时,把序列整体添加到列表
    • extend():与append()相同
      • 区别在于-
      • 追加的数据是序列时,把序列的数据逐一添加到列表
    • insert():指定位置新增数据
      • 语法-列表序列.insert(位置下标,数据)
  • 删除

    • del
      • 语法-del 目标 | del(目标)
      • 即可删除列表,也可删除列表中指定数据
    • pop()
      • 语法-列表序列.pop(下标)
      • 删除指定下标的数据,默认删除最后一个数据
      • 返回值为被删除的数据
    • remove()
      • 语法-列表序列.remove(数据)
      • 移除列表中某个数据的第一个匹配项
    • clear()–清空列表
      • 保留空列表,删除里面数据
  • 修改

    • 修改指定下标数据----直接给指定下标赋值
    • 逆序 reverse( )
    stel1 = [1, 2, 2, 3, 4]
    print(stel1.reverse())    # 打印 None
    print(stel1)     # 打印[4, 3, 2, 2, 1]
    
    • sort()----排序:升序、降序

      • 语法-列表序列.sort(key=None,reverse=False)
      • reverse表示排序规则,默认升序False(从小到大),True为降序
      stel1.sort()
      print(stel1)     # 打印[1, 2, 2, 3, 4]
      
  • 复制

    • 函数:copy()
    stel2 = stel1.copy()
    

(3)列表的循环遍历

  • while循环遍历、for循环遍历
'''
需求:依次打印列表中的各个数据
1、列表数据
2、循环while
    条件i<len()
    打印print()
    遍历i+=1
3、for循环遍历
'''
stel_list = ['a', 's', 'sf']
i = 0
while i < len(stel_list):
    print(stel_list[i])
    i += 1
# for循环遍历
for j in stel_list:
    print(j)

(4)列表的嵌套使用

  • 嵌套后数据的查找

    stel_list[0][1]#表示列表中-下标为1的列表-中的下标为1的数据
    

(5)实例应用

# 需求:8位老师,3个办公室,将三位老师随机分配到办公室
'''
步骤:
1、准备数据
    8位老师--列表
    3个办公室--列表嵌套
2、分配老师到办公室
    ***随机分配
    把老师名字写入办公室列表--办公室列表追加老师名字数据
3、验证是否分配成功
    打印办公室详细信息,每个办公室的人数和对应的老师名字
'''
import random
# 1、准备数据
teachers = ['张一', '张二', '张三', '张四', '张五', '张六', '张七', '张八']
offices = [[], [], []]
# 2、分配老师到办公室
# 遍历老师列表
for name in teachers:
    # 在办公室列表中追加老师名字--append(选中)、extend()、insert()
    num = random.randint(0, 2)
    offices[num].append(name)
# print(offices)
# 3、验证是否分配成功--打印--使用遍历
i = 1
for office in offices:
    # 打印办公室人数--子列表数据的个数  len()
    print(f'办公室{i}人数为{len(office)},老师分别是:')
    # 打印老师名字
    # print(office)--打印结果为列表,不能一一打印
    # 考虑遍历子列表
    for name in office:
        print(name)
    i += 1

(6)元组tuple与列表的区别

  • 列表内的数据可以修改;元组内的数据不能修改
  • 元组–(1,2,…)

(7)元组的定义、常见操作(只支持查找)

  • 定义–t1=(1,)
    • 注意----如果定义的元组只有一个数据,后面也需要添加逗号,否则**数据类型**为‘唯一的这个数据’的数据类型
  • 查找
    • 使用下标查找
    • index( ‘某个数据’)–存在则返回对应的下标,否则报错;与列表、字符串相同
    • count(‘某个数据’)–统计某个数据在当前元组出现的次数
    • len(元组序列名)–统计元组中数据的个数
  • 修改
    • 元组中数据进行修改时报错–TypeError: ‘tuple’ object does not support item assignment
    • 注意–如果元组中嵌套的有列表,可以修改里面列表的数据
第08节 字典和集合

目录

  • (1)创建字典语法–键值对、有数据1、空2
  • (2)字典常见操作–增/改、删(del、clear)、查(key、函数4种)
  • (3)字典的循环遍历–4种
  • (4)集合创建、特点
  • (5)集合的常见操作–增(add、update)删(remove、discard)查(in、not in)

(1)创建字典语法

  • 字典不支持下标,数据以键值对的形式出现;后期无论数据如何变化,只需按照对应的键的名字查找数据即可
  • 有数据字典-dict1 = {‘key’ : ‘值’, ‘’ : ‘’, …}
  • 创建空字典-2种
    • dict2={ }
    • dict3=dict( )

(2)字典常见操作

    • 写法-字典序列[key]=值
    • 注意:如果key存在则修改这个key对应的值;如果key不存在则新增此键值对
    • 注意:字典为可变类型
    • del 删除字典或指定的键值对
      • del(字典序列)
      • del 字典序列[‘key’] #key不存在就会报错
    • 字典序列.clear( )—清空字典数据,保留空字典
    • 写法-字典序列[key]=值—与新增操作一样
    • key值查找
      • 字典序列[‘key’]----如果当前查找的key存在,则返回对应的值,否则报错
    • 函数查找
      • get( )
        • 语法–字典序列.get(key,默认值)
        • 如果key不存在返回默认值;如果没有默认值,返回None
      • keys( )
        • 语法–字典序列.keys()
        • 查找字典中所有的key值,返回结果为可迭代对象
      • values( )
        • 语法–字典序列.values()
        • 查找字典中所有的values值,返回结果为可迭代对象
      • items( )
        • 语法–字典序列.values()
        • 查找字典中所有的键值对,返回可迭代对象

(3)字典的循环遍历

  • 遍历字典的key
  • 遍历字典的value
  • 遍历字典的元素(键值对)
  • 遍历字典的键值对
dict1 = {'name': 'z', '性别': '男', 'age': 22}
# 1、遍历key
for key in dict1.keys():
    print(key)
# 2、遍历value
for value in dict1.values():
    print(value)
# 3、遍历元素(键值对)
for item in dict1.items():
    print(item)    # 打印('name', 'z')('性别', '男')('age', 22)
# 4、遍历键值对
for key, value in dict1.items():
    print(f'{key} = {value}')    # 打印name = z  性别 = 男  age = 22

(4)集合创建、特点

  • 使用{}或set()进行创建
  • 注意:创建空集合只能用set(),{}是用来创建空字典的
  • 集合特点:
    • 集合是可变类型的数据
    • 打印集合内的数据没有顺序,不支持下标
    • 有去重功能–打印数据时不打印重复数据

(5)集合的常见操作

    • add()–用来追加单一数据
    • update()–增加的数据是序列
    set1 = set('1,2,3,4')
    print(set1)    # 打印 {',', '3', '4', '2', '1'}
    # 增
    # add()
    set1.add(100)
    print(set1)    # 打印 {'2', 100, '4', '3', ',', '1'}
    set1.add(1)
    print(set1)    # 注意区分int与str
    set1.add('1')
    print(set1)    # 有去重功能,什么事情都不做
    # set1.add([1, 2])
    # print(set1)    # 报错
    # update
    set1.update(['a', 'b'])
    print(set1)    # 打印 {1, 'b', 100, 'a', '3', '4', ',', '2', '1'}
    
    • remove()–删除集合中指定数据,数据不存在则报错
    • discard()–删除集合中指定数据,数据不存在不报错
    • pop()–随机删除集合中的某个数据,并返回这个数据
    # 删
    set1.remove(100)
    print(set1)
    # set1.remove(100)
    # 报错
    set1.discard(100)
    print(set1)    # 不报错
    delete_date = set1.pop()
    print(delete_date)    # 打印删除的数据
    print(set1)    # 随机删除一个数据
    
    • in 和 not in----判断数据在不在集合里面
    # 查
    s2 = {2, 3, 4, 5}
    print(1 in s2)    # 打印 False
    print(1 not in s2)    # 打印 True
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值