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])

【终端输出】

H

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

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

print('Hello'[0])

【终端输出】

H

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

# 将字符串Hello赋值给变量a
a = 'Hello'

# 取字符串的第2个元素
# 变量名a;英文中括号;索引为1
print(a[1])

【终端输出】

e

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

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

print('Hello'[1])

【终端输出】

e

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

# 将字符串Hello赋值给变量a
a = 'Hello'

# 取字符串的第5个元素
# 变量名a;英文中括号;索引为4
print(a[4])

【终端输出】

o

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

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

print('Hello'[4])

【终端输出】

o

3.2 负索引取值

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

# 将字符串Hello赋值给变量a
a = 'Hello'

# 取字符串的最后一个元素
# 变量名a;英文中括号;索引-1
print(a[-1])

【终端输出】

o

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

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

print('Hello'[-1])

【终端输出】

o

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

# 将字符串Hello赋值给变量a
a = 'Hello'

# 取字符串的倒数第2个元素
# 变量名a;英文中括号;索引-2
print(a[-2])

【终端输出】

l

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

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

print('Hello'[-2])

【终端输出】

l

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

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

  1. 取出代表性别的数字

在这里插入图片描述

# 将身份证号码赋值给变量id_card 
id_card = "533001199901013029"

# 用负索引从id_card中取出代表性别的倒数第2位数字
print(id_card[-2])

# 用正索引从id_card中取出代表性别的第17位数字
print(id_card[16])

【终端输出】

2
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("性别:女")

【终端输出】

性别:女

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. 题目要求:从【牛奶:¥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)

【终端输出】

¥
$

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

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

6. 总结

在这里插入图片描述

  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在Python中,可以使用切片操作来截取字符串的值。切片操作使用方括号\[\]来指定起始位置和结束位置,中间用冒号:分隔。例如,如果有一个字符串str = "Hello, World!",我们可以使用str\[7:12\]来截取"World"这个子字符串。注意,起始位置是包含在切片中的,而结束位置是不包含在切片中的。如果省略起始位置,则默认从字符串的开头开始;如果省略结束位置,则默认截取到字符串的末尾。此外,还可以使用负数来表示从字符串的末尾开始计数。例如,str\[-6:-1\]将截取"World"这个子字符串。\[3\] 另外,如果要截取字符串中的单个字符,可以使用索引操作。索引从0开始,表示字符串的第一个字符。例如,如果有一个字符串str = "Hello, World!",我们可以使用str\[4\]来获取字符"o"。如果指定的索引超出了字符串的范围,将会引发IndexError异常。为了避免程序崩溃,可以使用try...except语句来捕获异常并进行处理。\[2\] 综上所述,Python中截取字符串取值可以使用切片操作和索引操作。切片操作用于截取子字符串,而索引操作用于获取单个字符。 #### 引用[.reference_title] - *1* *2* *3* [Python字符串截取和分割](https://blog.csdn.net/TINA_JING_LIU/article/details/122651008)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值