Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • Python

    • 语法基础

    • 数据结构 函数 和文件

      • 字符串
        • 字符串
        • 表示
        • 字符串切片高级用法
          • 字符串操作符
          • 字符串处理方法
          • 字符串类型格式化
      • 序列类型
      • 列表
      • 元组
      • 集合(set)
      • 字典(dict)
      • 函数和模块的使用
      • 常用函数
    • 进阶

    • NumPy

  • MLTutorials

  • 卷积神经网络

  • 循环神经网络

  • Transformer

  • VisionTransformer

  • 扩散模型

  • 计算机视觉

  • PTM

  • MoE

  • LoRAMoE

  • LongTailed

  • 多模态

  • 知识蒸馏

  • PEFT

  • 对比学习

  • 小样本学习

  • 迁移学习

  • 零样本学习

  • 集成学习

  • Mamba

  • PyTorch

  • CL

  • CIL

  • 小样本类增量学习FSCIL

  • UCIL

  • 多模态增量学习MMCL

  • LTCIL

  • DIL

  • 论文阅读与写作

  • 分布外检测

  • GPU

  • 深度学习调参指南

  • AINotes
  • Python
  • 数据结构 函数 和文件
Geeks_Z
2023-01-17
目录

字符串

字符串

表示

  • 由一对单引号或双引号表示,仅表示单行字符串;

  • 由一对三单引号或三双引号表示,可表示多行字符串;

  • 字符串不可变;

s1 = 'hello, world!'
s2 = "hello, world!"
# 以三个双引号或单引号开头的字符串可以折行
s3 = """
hello, 
world!
"""
print(s1, s2, s3, end='')
1
2
3
4
5
6
7
8

可以在字符串中使用\(反斜杠)来表示转义,也就是说\后面的字符不再是它原来的意义,例如:\n不是代表反斜杠和字符n,而是表示换行;而\t也不是代表反斜杠和字符t,而是表示制表符。所以如果想在字符串中表示'要写成\',同理想表示\要写成\\。可以运行下面的代码看看会输出什么。

s1 = '\'hello, world!\''
s2 = '\n\\hello, world!\\\n'
print(s1, s2, end='')
>>>'hello, world!' 
>>>\hello, world!\

1
2
3
4
5
6

在\后面还可以跟一个八进制或者十六进制数来表示字符,例如\141和\x61都代表小写字母a,前者是八进制的表示法,后者是十六进制的表示法。也可以在\后面跟Unicode字符编码来表示字符,例如\u9a86\u660a代表的是中文“骆昊”。运行下面的代码,看看输出了什么。

s1 = '\141\142\143\x61\x62\x63'
s2 = '\u9a86\u660a'
print(s1, s2)
>>>abcabc 骆昊
1
2
3
4

如果不希望字符串中的\表示转义,我们可以通过在字符串的最前面加上字母r来加以说明,再看看下面的代码又会输出什么。

s1 = r'\'hello, world!\''
s2 = r'\n\\hello, world!\\\n'
print(s1, s2, end='')
>>>\'hello, world!\' \n\\hello, world!\\\n
1
2
3
4

字符串切片高级用法

使用[M: N: K]根据步长对字符串切片

<字符串>[M: N],M缺失表示至开头,N缺失表示至结尾

"〇一二三四五六七八九十"[:3] 
>>>结果是 "〇一二" 
1
2

<字符串>[M: N: K],根据步长K对字符串切片

"〇一二三四五六七八九十"[1:8:2] 

>>>结果是 "一三五七"

"〇一二三四五六七八九十"[::-1] 

>>>结果是 "十九八七六五四三二一〇"
1
2
3
4
5
6
7

字符串操作符

符号 功能
+ 拼接两个字符串
* nx 或者 xn复制n次字符串x
in x in s:判断x是否为s的子串

字符串处理方法

名称 功能
len(x) 返回字符串x的长度,如果换成bytes,len()函数就计算字节数
str(x) 任意类型x所对应的字符串形式
hex(x) 或 oct(x) 整数x(整型)的十六进制或八进制小写形式字符串
chr(x) x为Unicode编码,返回其对应的字符
ord(x) x为字符,返回其对应的Unicode编码
center() 通过在两边添加字符让字符串居中
find() 返回子串的第一个字符的索引,否则返回-1
join() 合并序列的元素,与split相反;str.join(iter) 在iter变量除最后元素外每个元素后增加一个str;eg",".join("12345") 结果为"1,2,3,4,5" #主要用于字符串分隔等
split() 将字符串拆分为序列,如果未指定分隔符,将默认在单个或多个连续的空白字符(空白泛指任何非打印字符,如空格、制表符、换行符等)进行拆分
translate() 单字符替换
str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成;"A,B,C".split(",") 结果为 ['A','B','C']
str.count(sub) 返回子串sub在str中出现的次数
str.replace(old, new) 返回字符串str副本,所有old子串被替换为new
str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选;"python".center(20,"=") 结果为'=======python======='
str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符,rstrip()****:末尾(暂时删除)、lstrip()****:头;要想永久删除,将修改后的值重新赋值给变量。"= python= ".strip(" =np") 结果为"ytho"
title()、upper()、 lower() 首字母大写、全部大写、全部小写
s1 = 'hello ' * 3
print(s1) # hello hello hello 
s2 = 'world'
s1 += s2
print(s1) # hello hello hello world
print('ll' in s1) # True
print('good' in s1) # False
str2 = 'abc123456'
# 从字符串中取出指定位置的字符(下标运算)
print(str2[2]) # c
# 字符串切片(从指定的开始索引到指定的结束索引)
print(str2[2:5]) # c12
print(str2[2:]) # c123456
print(str2[2::2]) # c246
print(str2[::2]) # ac246
print(str2[::-1]) # 654321cba
print(str2[-3:-1]) # 45
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

在Python中,我们还可以通过一系列的方法来完成对字符串的处理,代码如下所示。

str1 = 'hello, world!'
# 通过内置函数len计算字符串的长度
print(len(str1)) # 13
# 获得字符串首字母大写的拷贝
print(str1.capitalize()) # Hello, world!
# 获得字符串每个单词首字母大写的拷贝
print(str1.title()) # Hello, World!
# 获得字符串变大写后的拷贝
print(str1.upper()) # HELLO, WORLD!
# 从字符串中查找子串所在位置
print(str1.find('or')) # 8
print(str1.find('shit')) # -1
# 与find类似但找不到子串时会引发异常
# print(str1.index('or'))
# print(str1.index('shit'))
# 检查字符串是否以指定的字符串开头
print(str1.startswith('He')) # False
print(str1.startswith('hel')) # True
# 检查字符串是否以指定的字符串结尾
print(str1.endswith('!')) # True
# 将字符串以指定的宽度居中并在两侧填充指定的字符
print(str1.center(50, '*'))
# 将字符串以指定的宽度靠右放置左侧填充指定的字符
print(str1.rjust(50, ' '))
str2 = 'abc123456'
# 检查字符串是否由数字构成
print(str2.isdigit())  # False
# 检查字符串是否以字母构成
print(str2.isalpha())  # False
# 检查字符串是否以数字和字母构成
print(str2.isalnum())  # True
str3 = '  jackfrued@126.com '
print(str3)
# 获得字符串修剪左右两侧空格之后的拷贝
print(str3.strip())
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

字符串类型格式化

%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,%x表示十六进制整数,%f表示浮点数;有几个**%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?**,括号可以省略。

>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'

1
2
3
4
5

格式化是对字符串进行格式表达的方式

字符串格式化使用**.format()**方法,用法如下:

<模板字符串>.format(<逗号分隔的参数>)

image-20210821215354696

image-20210821215401441

image-20210821215408051

image-20210821215414052

image-20210821215418954

Python 3.6以后,格式化字符串还有更为简洁的书写方式,就是在字符串前加上字母f,我们可以使用下面的语法糖来简化上面的代码。

a, b = 5, 10
print(f'{a} * {b} = {a * b}')
1
2

#Python
上次更新: 2025/06/25, 11:25:50
语言元素
序列类型

← 语言元素 序列类型→

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式