零基础学Python合集---3:字符串的定义和常用方法

一、字符串是什么?

字符串(String) 是python中最常用的数据类型,用来表示文本、字符、符号 等内容,本质是不可变的有序字符序列

  • 不可变:字符串创建后,不能直接修改里面的单个字符
  • 有序:每个字符都有固定位置,支持索引、切片
  • 定义:用单引号 ' ' / 双引号 " " / 三引号 ''' ''' 包裹内容

二、字符串定义与引号用法

Python中单引号、双引号功能完全一样,区别仅在于处理字符串内部引号:

  1. 普通字符串

    str1 = 'Hello, World!' # 单引号
    str2 = "Hello, World!" # 双引号

  2. 字符串内部包含引号(不用转义)

  • 字符串里有单引号 → 外层用双引号

  • 字符串里有双引号 → 外层用单引号

    str3 = "it's a nice day!" # 内部单引号,无需转义
    str4 = 'She said, "Hello!"' # 内部双引号,无需转义

  1. 必须使用转义字符 \

    str3 = 'It's a nice day!' # 单引号内包单引号,必须加
    str4 = "She said, "Hello!"" # 双引号内包双引号,必须加 \


三、字符串基础操作

1. 索引取值(按位置取字符)

字符串每个字符都有下标,从0开始,支持正负索引:

复制代码
s = "Hello, World!"
print(s[0])   # 第一个字符 → H
print(s[-1])  # 最后一个字符 → !

2. 切片(截取一段字符串)

语法:字符串[起始:结束:步长] 规则:包含起始,不包含结束

复制代码
s = "Hello, World!"
print(s[0:5])      # 0~4 → Hello
print(s[7:12])     # 7~11 → World
print(s[::])       # 取全部
print(s[::-1])     # 字符串反转

3. 字符串拼接(+)

复制代码
s1 = "hello"
s2 = "CSDN"
s3 = s1 + " " + s2  # hello CSDN

4. 字符串重复(*)

复制代码
print("hello" * 3)  # hellohellohello

5. 成员判断(in /not in)

判断字符串是否包含某个子串,返回True/False

复制代码
s = "Hello, World!"
print("World" in s)       # True
print("Python" in s)      # False
print("Python" not in s)  # True

6. 遍历字符串

字符串是可迭代对象,可用 for 循环逐个取出字符

复制代码
s = "hello"
for i in s:
    print(i)  # 依次输出 h e l l o

7. 获取字符串长度(len ())

复制代码
s = "hello, world!"
print(len(s))  # 输出字符总个数

四、字符串格式化(推荐 f-string)

1. f-string(最简单、最推荐)

复制代码
name = "GFD"
age = 18
print(f"my name is {name}, I am {age} years old.")

2. format () 方法

复制代码
print("My name is {} and I am {} years old.".format(name, age))

五、字符串大小写转换

复制代码
s = "nihao wo shi csdn user"

print(s.title())   # 每个单词首字母大写 → Nihao Wo Shi Csdn User
print(s.upper())   # 全部大写 → NIHAO WO SHI CSDN USER
print(s.lower())   # 全部小写 → nihao wo shi csdn user

六、字符串查找与替换

1. 查找(in 关键字)

复制代码
s = "Hello, World!"
print("World" in s)  # True

2. 替换(replace)

  • 语法:replace(旧内容, 新内容, 替换次数)

  • 字符串区分大小写

  • 不会修改原字符串,返回新字符串

    s = "Hello, World!"
    print(s.replace("World", "GFD")) # Hello, GFD!

    只替换第1个匹配项

    s10 = "hello world, hello python"
    print(s10.replace("l", "L", 1)) # heLlo world, hello python


七、去除空格(strip 系列)

复制代码
s = "   h ello worl d "

print(s.strip())   # 去除 两端 空格
print(s.lstrip())  # 去除 左侧 空格
print(s.rstrip())  # 去除 右侧 空格

# 去除所有空格(用 replace)
print(s.replace(" ", ""))  # helloworld

八、字符串分割与合并(高频重点)

1. 分割(split)→ 字符串 转 列表

按指定符号把字符串切成一段段,返回列表

复制代码
s = "hello,world,python"
lst = s.split(",")  # 按逗号分割
print(lst)  # ['hello', 'world', 'python']

2. 合并(join)→ 列表 / 元组 转 字符串

用指定符号把可迭代对象拼接成字符串

复制代码
lst = ["hello","world","python"]
print(",".join(lst))  # hello,world,python
print(" ".join(lst))  # hello world python

⚠️ 注意:join() 括号里必须是列表、元组等可迭代对象。


九、字符串重要注意事项

  1. 字符串是不可变类型 不能直接修改某个位置的字符,只能通过切片 / 拼接生成新字符串。

  2. 字符串严格区分大小写 Hellohello 是两个完全不同的字符串。

  3. 空格也是一个有效字符 会影响长度、判断、匹配等。

  4. 特殊字符需要转义 如换行 \n、制表符 \t、引号 \' \" 等。

    #python 字符串常用方法

    #单引号 双引号 三引号 用法
    #python字符串单引号和双引号都可以用来定义字符串,具体使用哪种,需要根据字符串内容来决定,如果字符串中包含单引号,则使用双引号定义字符串,反之亦然。
    #三引号""" ''' 用于定义多行字符串,可以包含换行符和引号,不需要转义。
    str1 = 'Hello, World!' # 使用单引号定义字符串
    print(str1)#输出 Hello, World!

    str2 = "Hello, World!" # 使用双引号定义字符串
    print(str2)#输出 Hello, World!

    str3 = 'It's a nice day!' # 使用单引号定义字符串,包含单引号需要转义
    print(str3)#输出 It's a nice day!

    str3_3 = "it's a nice day!" # 使用双引号定义字符串,包含单引号不需要转义
    print(str3_3)#输出 it's a nice day!

    str4 = "he is a 'good' boy?"# 使用双引号定义字符串,包含单引号不需要转义
    print(str4)

    str4 = "She said, "Hello!"" # 使用双引号定义字符串,包含双引号需要转义
    print(str4)#输出 She said, "Hello!"
    s_333 = """"
    11111111,
    22222222,
    33333333,

    """
    print(f"s_333:{s_333}")#输出 s_333:11111111,

    #字符串的切片
    str1 = "Hello, World!"
    print(str1[0:5]) # 输出 "Hello"
    print(str1[7:12]) # 输出 "World"

    #字符串拼接
    s1 = "hello"
    s2 = "CSND740"
    s3 =s1 +" " +s2
    print(s3) # 输出 "hello CSND740"

    #字符串格式化
    name = "GFD"
    age = 18
    print("My name is {} and I am {} years old.".format(name,age)) #输出 "My name is GFD and I am 18 years old."
    print(f"my name is {name} and I am {age} years old.") #输出 "my name is GFD and I am 18 years old."
    #两者的区别是,format方法在字符串中使用花括号{}作为占位符,并通过format方法传入对应的值进行替换,而f-string则直接在字符串前加上f,并在字符串中使用花括号{}来引用变量或表达式,Python会自动将其替换为对应的值。f-string更简洁易读,且支持更复杂的表达式。
    #推荐使用f-string进行字符串格式化,因为它更简洁易读,并且支持更复杂的表达式。

    #字符串的取值
    s_value = "Hello, World!"
    s_value1 = s_value[0] # 获取字符串的第一个字符
    s_value2 = s_value[-1] # 获取字符串的最后一个字符
    print(s_value1) # 输出 "H"
    print(s_value2) # 输出 "!"

    #字符串的重复
    s_res = "hello" * 3 # 将字符串重复3次
    print(f"s_res:{s_res}")#输出 "s_res:hellohellohello"

    #字符串的大小写转换
    #所有首字母大写
    s_cap = "nihao wo shi scdn user GFD,id is CSND740"
    print(f"首字母大写的s_cap:{s_cap.title()}")#输出 "每一个单词首字母大写的s_cap:Nihao Wo Shi Scdn User Gfd,Id Is Csnd740"
    #所有字母大写
    print(f"s_cap:{s_cap.upper()}")#输出 "s_cap:NIHAO WO SHI SCDN USER GFD,ID IS CSND740"
    #所有字母小写
    print(f"所有字母小写:{s_cap.lower()}")#输出 "所有字母小写:nihao wo shi scdn user gfd,id is csnd740"

    #字符串的查找和替换
    s_find = "Hello, World!"
    print(f"字符串s_find中是否包含'World':{'World' in s_find}")#输出 "字符串s_find中是否包含'World':True"
    print(f"字符串s_find中是否包含'Python':{'Python' in s_find}")#输出 "字符串s_find中是否包含'Python':False"
    s_replace = s_find.replace("World","GFD")#将字符串中的"World"替换为"GFD"
    print(f"替换后的字符串s_replace:{s_replace}")#输出 "替换后的字符串s_replace:Hello, GFD!" 因为字符串是区分大小写的,所以"World"被替换了。
    s_replace2 = s_find.replace("world","GFD")#将字符串中的"world"替换为"GFD"
    print(f"替换后的字符串s_replace2:{s_replace2}")#输出 "替换后的字符串s_replace2:Hello, World!" 因为字符串是区分大小写的,所以"world"没有被替换。

    #去除字符串中的空格
    s_st= " h ello worl d "
    print(f"去除字符串s_strip两端空格后的结果:{s_st.strip()}")#输出 "去除字符串s_strip两端空格后的结果:h ello worl d" strip()方法只能去除字符串两端的空格,不能去除字符串中间的空格。
    #去除左侧空格
    print(f"去除字符串s_strip左侧空格后的结果:{s_st.lstrip()}")#输出 "去除字符串s_strip左侧空格后的结果:h ello worl d "
    #去除右侧空格
    print(f"去除字符串s_strip右侧空格后的结果:{s_st.rstrip()}")#输出 "去除字符串s_strip右侧空格后的结果: h ello worl d"
    #去除所有空格
    print(f"去除字符串s_strip所有空格后的结果:{s_st.replace(' ','')}")#输出 "去除字符串s_strip所有空格后的结果:helloworld"
    #replace()方法可以用来替换字符串中的指定字符或子字符串,可以用来去除字符串中的所有空格。
    #把空格字符替换为字符
    print(f"把字符串s_strip中的空格字符替换为
    后的结果:{s_st.replace(' ' ,'')}")#输出 "把字符串s_strip中的空格字符替换为后的结果:helloworld***"
    #replace只能替换字符串中的指定字符或子字符串,不能替换字符串中的所有空格,如果要替换字符串中的所有空格,可以使用正则表达式或者其他方法。
    #替换子字符串
    print(f"把字符串s_strip中的'ello'替换为'hi'后的结果:{s_st.replace('ello','hi')}")#输出 "把字符串s_strip中的'ello'替换为'hi'后的结果: h hi worl d "
    #replace('要替换的子字符串','替换后的子字符串')
    #replace('要替换的字符','替换后的字符')#默认为替换全部的匹配项,如果要替换指定数量的匹配项,可以使用第三个参数来指定替换的次数。
    #replace('要替换的子字符串','替换后的子字符串',替换的次数)
    s_10 = "hello world, hello python"
    print(f"s_10:{s_10}")#输出 "s_10:hello world, hello python"
    #只把第一个l替换为L
    print(f"只替换第一个l后的结果:{s_10.replace('l','L',1)}")#输出 "只替换第一个l后的结果:heLlo world, hello python"

    #分割
    s_split = "hello,world, python"
    print(f"s_split:{s_split}")#输出 "s_split:hello,world,python"
    s_new= s_split.split(",")
    print(f"使用逗号分割字符串s_split后的结果:{s_new}")#输出 "使用逗号分割字符串s_split后的结果:['hello', 'world', 'python']"
    print(f"分割后的类型:{type(s_new)}")#输出 "分割后的类型:<class 'list'>"
    print(f"s_split:{s_split}")#输出 "s_split:hello,world,python" split()方法不会修改原字符串,而是返回一个新的列表。
    s_new2= s_split.split(" ")#使用空格分割字符串s_split
    print(f"使用空格分割字符串s_split后的结果:{s_new2}")#输出 "使用空格分割字符串s_split后的结果:['hello,world,', 'python']"

    #合并
    s_join = ["hello","world","python"]
    print(f"s_join:{s_join}")#输出 "s_join:['hello', 'world', 'python']"
    s_new_join = ",".join(s_join)#使用逗号连接列表s_join中的字符串
    print(f"使用逗号连接列表s_join中的字符串后的结果:{s_new_join}")#输出 "使用逗号连接列表s_join中的字符串后的结果:hello,world,python"
    s_new_join2 = " ".join(s_join)#使用空格连接列表s_join中的字符串
    print(f"使用空格连接列表s_join中的字符串后的结果:{s_new_join2}")#输出 "使用空格连接列表s_join中的字符串后的结果:hello world python"
    s_new_join3= "&".join(s_join)#使用&连接列表s_join中的字符串
    print(f"使用&连接列表s_join中的字符串后的结果:{s_new_join3}")#输出 "使用&连接列表s_join中的字符串后的结果:hello&world&python"

    #" ".join()括号中的内容必须是一个可迭代对象,通常是一个列表或者元组,不能是一个字符串,因为字符串也是一个可迭代对象,会被当做一个个字符来处理。
    list = ["hello","world","python"]
    print(f"使用空格连接列表list中的字符串后的结果:{' '.join(list)}")#输出 "使用空格连接列表list中的字符串后的结果:hello world python"
    str = "hello"
    print(f"使用空格连接字符串str中的字符后的结果:{' '.join(str)}")#输出 "使用空格连接字符串str中的字符后的结果:h e l l o" 因为字符串也是一个可迭代对象,所以会被当做一个个字符来处理。
    tuple = ("hello","world","python")
    print(f"使用空格连接元组tuple中的字符串后的结果:{' '.join(tuple)}")#输出 "使用空格连接元组tuple中的字符串后的结果:hello world python"

    #遍历字符串,因为是可迭代对象,所以可以使用for循环来遍历字符串中的每个字符。
    s_traverse = "hello"
    for i in s_traverse:
    print(i) #输出 "h e l l o" 每个字符占一行

    in not in 用于判断字符串中是否包含某个子字符串,返回值是一个布尔值,True表示包含,False表示不包含。

    s_in = "hello, world!"
    print(f"字符串s_in中是否包含'world':{'world' in s_in}")#输出 "字符串s_in中是否包含'world':True"
    print(f"字符串s_in中是否包含'python':{'python' in s_in}") #输出 "字符串s_in中是否包含'python':False"
    print(f"字符串s_in中是否不包含'world':{'world' not in s_in}")#输出 "字符串s_in中是否不包含'world':False"
    print(f"字符串s_in中是否不包含'python':{'python' not in s_in}")#输出 "字符串s_in中是否不包含'python':True"

    #字符串长度
    s_len = "hello, world!"
    print(f"s_len:{len(s_len)}")

    #注意事项
    #1.字符串是不可变类型,不能修改字符串中的字符,但是可以通过切片和拼接来创建一个新的字符串。
    #2.字符串是区分大小写的,"Hello"和"hello"是两个不同的字符串。
    #3.字符串中的空格也是一个字符,不能忽略。
    #4.字符串中的特殊字符需要使用转义字符来表示,例如换行符\n,制表符\t等。

相关推荐
数据堂官方账号1 小时前
数据上新|覆盖全双工、具身智能、世界模型等热门研究趋势
人工智能·大模型·具身智能
LienJack1 小时前
《Re0 Build Harness》第二章Agent 组成模型:Model、Loop、Tools、State
人工智能·agent
Raink老师1 小时前
【AI面试临阵磨枪-087】Skill 生命周期:注册、加载、调度、熔断、卸载、版本管理?
人工智能·面试·职场和发展
夜郎king1 小时前
告别创作卡壳!体验 CSDN AI 数字营销,解锁全新写作思路
人工智能·数字营销体验·ai 营销新体验
五月君_1 小时前
放弃 Python,Kimi 用 TS + Node.js 重写了一个 Kimi Code
开发语言·python·node.js
还是鼠鼠1 小时前
AI掘金头条新闻系统 (Toutiao News)-获取用户信息
后端·python·mysql·fastapi·web
Luke Ewin1 小时前
从零开始部署Fun-ASR-Nano实时语音识别并区分说话人教程 | 私有化部署开源的实时语音转写项目
人工智能·语音识别·funasr·实时语音识别·fun-asr
跨境技工小黎1 小时前
Playwright vs Puppeteer :自动化脚本工具全面对比
人工智能
Hotchip_MEMS1 小时前
韬τ定律的技术内核:逻辑折叠与信息路径重构
人工智能·物联网