【在校课堂笔记】Python 第 9 节课 总结

时间:2025-04-12 21:19:45

- 第 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