• 24. python 字符串索引取值


    24. 字符串索引取值

    1. 字符串索引的定义

    【定义】

    字符串中的每一元素都有一个属于自己的编号,这个编号就叫索引。

    【隐喻】

    假设全班同学集体去旅游,住酒店时每个人一个房间,酒店的房间从左到右都有一个房间号。
    字符串的元素也一样,每个元素在计算机中都需单独住一个房间,只是在Python中我们给这个房间号起了另一个高大上的名字索引

    字符串索引可以理解成字符串元素的房间号。

    字符串索引=字符串元素房间号

    【索引和房间号的区别】

    房间号从1开始编号,索引从0开始编号。

    房间号没有负数,索引有正索引和负索引。

    【知识扩充】

    序列是一种可迭代的、元素有序的容器类型的数据。

    序列包括列表(list)、字符串(str)、元组(tuple)和字节序列
    (bytes)等。

    在这里插入图片描述

    列表、元组都是Python的一种数据类型。

    只要是序列就可以通过索引取值。

    上述内容仅做了解,后面的课程会进行具体讲解。

    2. 索引编号规则

    2.1. ⚠️索引通常从0开始编号!

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VPdI9QVX-1661872715924)在这里插入图片描述

    千万注意字符串第1个元素的索引为0,不为1。

    2.2 正索引

    在这里插入图片描述

    ⚠️正索引从左往右开始编号,编号从0开始!

    2.3 负索引

    在这里插入图片描述

    ⚠️负索引从右往左开始编号,编号从-1开始!

    3. 索引的取值

    在这里插入图片描述

    【语法】

    字符串索引取值由3部分构成:

    1. 字符串变量名或者字符串本身。
    2. 英文中括号。
    3. 索引。

    3.1 正索引取值

    【索引0取字符串的第1个元素】

    # 将字符串Hello赋值给变量a
    a = 'Hello'
    
    # 取字符串的第1个元素
    # 变量名a;英文中括号;索引为0
    print(a[0])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【终端输出】

    H
    
    • 1

    运行程序,终端输出字符串的第1字符H

    【直接从字符串本身中取值】

    print('Hello'[0])
    
    • 1

    【终端输出】

    H
    
    • 1

    【索引1取字符串的第2个元素】

    # 将字符串Hello赋值给变量a
    a = 'Hello'
    
    # 取字符串的第2个元素
    # 变量名a;英文中括号;索引为1
    print(a[1])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【终端输出】

    e
    
    • 1

    运行程序,终端输出字符串的第2字符e

    【直接从字符串本身中取值】

    print('Hello'[1])
    
    • 1

    【终端输出】

    e
    
    • 1

    【索引4取字符串的第5个元素】

    # 将字符串Hello赋值给变量a
    a = 'Hello'
    
    # 取字符串的第5个元素
    # 变量名a;英文中括号;索引为4
    print(a[4])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【终端输出】

    o
    
    • 1

    运行程序,终端输出字符串的第5字符o

    【直接从字符串本身中取值】

    print('Hello'[4])
    
    • 1

    【终端输出】

    o
    
    • 1

    3.2 负索引取值

    【索引-1取字符串的最后一个元素】

    # 将字符串Hello赋值给变量a
    a = 'Hello'
    
    # 取字符串的最后一个元素
    # 变量名a;英文中括号;索引-1
    print(a[-1])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【终端输出】

    o
    
    • 1

    运行程序,终端输出字符串的最后一个字符o

    【直接从字符串本身中取值】

    print('Hello'[-1])
    
    • 1

    【终端输出】

    o
    
    • 1

    【索引-2取字符串的倒数第2个元素】

    # 将字符串Hello赋值给变量a
    a = 'Hello'
    
    # 取字符串的倒数第2个元素
    # 变量名a;英文中括号;索引-2
    print(a[-2])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    【终端输出】

    l
    
    • 1

    运行程序,终端输出字符串的倒数第2字符l

    【直接从字符串本身中取值】

    print('Hello'[-2])
    
    • 1

    【终端输出】

    l
    
    • 1

    4. 取身份证号码中表示性别的数字

    中国居民身份证号码中的倒数第2位代表性别。
    倒数第2位为奇数代表男性。
    倒数第2位为偶数代表女性。

    1. 取出代表性别的数字

    在这里插入图片描述

    # 将身份证号码赋值给变量id_card 
    id_card = "533001199901013029"
    
    # 用负索引从id_card中取出代表性别的倒数第2位数字
    print(id_card[-2])
    
    # 用正索引从id_card中取出代表性别的第17位数字
    print(id_card[16])
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    【终端输出】

    2
    2
    
    • 1
    • 2

    5. 课后练习

    1. 题目要求:编写程序根据用户输入的身份证号码判定用户的性别。

    【参考答案1】

    # 用input函数从终端获取身份证号码
    id_card = input("请输入18位身份证号码:")
    
    # 从字符串中取出代表性别的数字并赋值给变量sex
    # input函数得到的是字符串类型,因此我用int函数将其转换为整数类型,方便后面进行数学运算
    sex = int(id_card[-2])
    
    # 如果sex除以2余数不等于0,则sex为奇数,奇数代表男性
    if sex%2 != 0 :
        print("性别:男")
    else:
        print("性别:女")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    【终端输出】

    性别:女
    
    • 1

    sex%2 != 0 表示变量sex除以2余数不等于0。
    !=表示不等于。
    ==表示等于。

    【参考答案2】

    # 用input函数从终端获取身份证号码
    id_card = input("请输入18位身份证号码:")
    
    # 从字符串中取出代表性别的数字并赋值给变量sex
    # input函数得到的是字符串类型,因此我用int函数将其转换为整数类型,方便后面进行数学运算
    sex = int(id_card[-2])
    
    # 如果sex除以2余数等于0,则sex是偶数,偶数代表女性
    if sex%2 == 0 :
        print("性别:女")
    else:
        print("性别:男")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    【终端输出】

    性别:女
    
    • 1
    1. 题目要求:从【牛奶:¥69,$10】句子中取出代表人民币和美元的符号。

    上述语句的意思是牛奶的价格是69元或10美元。

    ¥是人民币符号。
    $是美元符号。

    在这里插入图片描述

    【参考答案】

    # 将题目给的语句赋值给变量str_1
    str_1 = "牛奶:¥69,$10"
    
    # 提取字符串的第4个字符,第4个字符索引为3
    RMB = str_1[3]
    
    # 提取字符串的倒数第3个字符,并赋值给变量dollar
    dollar = str_1[-3]
    
    # 用print函数输出提取到的字符
    print(RMB)
    print(dollar)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    【终端输出】

    ¥
    $
    
    • 1
    • 2

    dollar[ˈdɒlə]:美元。

    【备注】本文图片来自关东升的《看漫画学Python》。

    6. 总结

    在这里插入图片描述

  • 相关阅读:
    spline本地运行的方法
    最近公共祖先 LCA
    ansible unarchive 模块
    Jedis入门及对Redis数据结构的操作
    爬虫玩得好,牢饭吃到饱?这3条底线千万不能碰!
    鸿蒙系统优缺点,能否作为开发者选择
    21级数据结构与算法实验8——排序
    【TypeScript】基础知识学习笔记
    宽字节注入
    1.6 IntelliJ IDEA开发工具
  • 原文地址:https://blog.csdn.net/weixin_63986098/article/details/126614849