- 第 91 篇 -
Date: 2025 - 04 - 10
Author: 郑龙浩/仟墨
【Python 在校课堂笔记】
文章目录
- 南山-第 9 节课
- 字符串的各种操作
- 一 string
- 二 string 的索引
- 1 索引介绍
- 2 示例 - 索引使用
- 三 切片
- 1 **结构**
- 2 示例
- 四 回文数 – 切片的应用
- 五 对手机号进行脱敏处理
- 六 注意
- 七 读取字符串中的每一个值
- 八 与4相关的数
- 九 连接操作
- 十 重复操作
南山-第 9 节课
Date: 2025-04-07
Author: 郑龙浩 / 仟墨
字符串的各种操作
一 string
字符串使用一对单引号,双引号,三单引号,三双引号包围起来的。
s1 = 'asdas'
s2 = "dwaewed"
s3 = '''eqdewfdwedwada'''
s3_2 = '''wda
wad''' # 三引号可以让字符串换行赋值
print (s1)
print (s2)
print (s3)
print (s3_2)
二 string 的索引
1 索引介绍
字符串称为 字符序列
一般来说都是正向
每个字符有正向和逆向两种序号
正向索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
内容 | H | e | l | l | o | P | y | t | h | o | n | ! | |
逆向索引 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
2 示例 - 索引使用
示例1
ss = 'Hello Python!'
print (ss[0]) # 打印 H
print (ss[9]) # 打印 h
print (ss[-1]) # 打印 !
for i in range(0, len(ss)):
print (ss[i], end = ' ')
打印结果
H
h
H e l l o P y t h o n !
示例2
print (ss[10]) # 报错,越界了 --> out of range --> 超出范围
Traceback (most recent call last):
File "E:\code\PythonProject\test12.py", line 14, in <module>
print (ss[13]) # 报错,越界了 --> out of range --> 超出范围
~~^^^^
IndexError: string index out of range
示例3
ss = 'Hello Python!'
print (ss[-1]) # 打印 !
print (ss[-13]) # 打印H
for i in range(-len(ss), 0):
print (ss[i], end = ' ')
打印结果
!
H
H e l l o P y t h o n !
三 切片
1 结构
string名[a:b]
2 示例
正序
ss = 'Hello Python!'
print (ss[0: 9]) # 左闭右开 -> 下标0 ~ 9
# 打印结果
Hello Pyt
正序 – 省略开始下标
print (ss[: 9])
# 打印结果
Hello Pyt
正序 – 省略结束下标
print (ss[2: ])
# 打印结果
llo Python!
正序 – 有步长 – 步长为2
print (ss[0: len(ss): 2])
# 打印结果
HloPto!
逆序 – 有步长 – 步长为2
print (ss[-1::-1])
# 打印结果
!nohtyP olleH
逆序
print (ss[-len(ss): -1])
# 打印结果
Hello Python
四 回文数 – 切片的应用
使用切片来判断回文数,这样就不需要数学运算了
原理
程序主要分了三步:
- 输入
- 判断
- 打印
s[-1:-len(s) - 1:-1]
的意思就是倒着将该字符串读取出来,比如123
读取出来时321
其实也可以写成 s[-1::-1]
,或者 s[::-1]
那么
s[-1::-1]
就是从s[-1]
开始每次步长 -1 读取到s[-len(s) - 1]
下面分解一下意思:
- 第一个参数 -1 的意思是 从
-1
索引开始,也就是从最后一个字符开始 - 第二个参数,没有写,这样就默认读取到字符串开头的前一个位置,其实也可以写
-len(s) - 1
- 第三个参数 -1 的意思是步长为 -1
所以 s == s[-1::-1]
的意思就是原字符串 与 倒着的字符串 是否是相同的
若相同,则表示是回文数,若不相同,则表示不是回文数
s = input()
# s == s[-1:-len(s) - 1:-1] 是等效的
if (s == s[-1::-1]):
print ('是回文数')
else:
print('不是回文数')
# 输入 12321
# 打印 是回文数
# 输入 123
# 打印 不是回文数
五 对手机号进行脱敏处理
下列循环会进入死循环,直到输入 ‘q’ 退出循环
使用了字符串的拼接操作
while 1:
t = input()
if (t == 'q') # 输入q退出循环
break
if len(t) == 11:
print (t[0:3] + '****' + t[7:]) # 字符串的拼接操作
else:
print ('请输入11位数字')
# 输入 12345678910
# 打印 123****8910
# 输入 123456789
# 打印 请输入11位数字
# 输入 'q' --> 退出循环
六 注意
不能直接给某个元素单个赋值
s = 'abcdefg1234567'
s[0] = '0' # 会报错,不能单个直接赋值
print (s)
七 读取字符串中的每一个值
s = 'adadadadada'
for i in range(len(s)):
print (s[i])
八 与4相关的数
s = '1234343'
for i in s:
if i == '4'
print('相关')
else:
print('不相关')
九 连接操作
print ('asd' + '123')
# 打印
asd123
十 重复操作
print ('abc' * 3)
print (3 * 'abc')
# 打印
abcabcabc
abcabcabc