python字符串

在Python中,字符串(String)是一种用于表示文本的数据类型。字符串可以包含字母、数字、空格、标点符号等字符,并且字符串是不可变的,意味着一旦创建了一个字符串,就不能更改其内部的字符(尽管可以创建新的字符串作为修改后的版本)。

字符串的定义

字符串可以通过以下几种方式定义:

单引号:

使用单引号(')将字符或字符序列括起来。

s1 = 'Hello, world!'

双引号:

使用双引号(")将字符或字符序列括起来。这在字符串中包含单引号时特别有用,以避免混淆。

s2 = "Python is fun!"

三引号:

可以使用三个单引号(‘’')或三个双引号(“”")来定义跨越多行的字符串,或者在字符串内部包含单引号、双引号、换行符等复杂字符时使用。

s3 = '''这是一个  
跨越多行的  
字符串'''  
  
s4 = """这也是一个  
跨越多行的  
字符串,它还可以包含  
'单引号'和"双引号"等字符"""

字符串的不可变性

由于字符串是不可变的,所以你不能直接修改字符串中的某个字符。如果你需要修改字符串,你需要创建一个新的字符串作为修改后的版本。

original = "hello"  
# 尝试修改字符串会导致错误  
# original[1] = 'a'  # TypeError: 'str' object does not support item assignment  
  
# 创建一个新的字符串作为修改后的版本  
modified = "hallo"

字符串的操作

Python提供了丰富的字符串操作方法,比如连接(+)、重复(*)、索引([])、切片([start:stop:step])、查找(find()、index())、替换(replace())、分割(split())、格式化(%、str.format()、f-string)等。

# 字符串连接  
s = "Hello, " + "world!"  
  
# 字符串重复  
repeated = "ha" * 3  # 结果为 'hahaha'  
  
# 索引  
char = s[7]  # 结果为 'w'  
  
# 切片  
substring = s[7:12]  # 结果为 'world'  
  
# 查找  
index = s.find("world")  # 结果为 7  
  
# 替换  
new_s = s.replace("world", "Python")  # 结果为 'Hello, Python!'  
  
# 分割  
words = s.split(", ")  # 结果为 ['Hello', 'world!']  
  
# 格式化(f-string,Python 3.6+)  
name = "Alice"  
greeting = f"Hello, {name}!"  # 结果为 'Hello, Alice!'

在Python中,遍历字符串意味着逐一访问字符串中的每个字符,并对它们执行某些操作。字符串是不可变的,但你可以遍历它们来读取每个字符。有几种方法可以遍历字符串:

  1. 使用for循环
    最常见的方式是使用for循环,通过for char in string:结构来实现。这里,char是循环中每次迭代时字符串string中的一个字符。
s = "hello"  
for char in s:  
    print(char)  
# 输出:  
# h  
# e  
# l  
# l  
# o
  1. 使用range()和字符串索引
    虽然这不是遍历字符串的推荐方式(因为它不直接),但你可以结合使用range()函数和字符串索引来遍历字符串。不过,请注意,这种方法在Python 3中需要小心处理,因为字符串索引是基于0的,并且range()默认不包含结束索引。
s = "hello"  
for i in range(len(s)):  
    print(s[i])  
# 输出:  
# h  
# e  
# l  
# l  
# o

这里,len(s)给出了字符串s的长度,range(len(s))生成了一个从0到len(s)-1的序列,然后我们使用s[i]来访问字符串中的每个字符。

字符串索引

使用方括号([])和索引来访问字符串中的单个字符。索引从0开始。

s = "hello"  
print(s[0])  # 输出: h  
print(s[-1])  # 输出: o,负索引从字符串末尾开始计数

字符串切片

使用方括号([])和切片语法(start:stop:step)来访问字符串的子集。

s = "hello"  
print(s[1:4])  # 输出: ell  
print(s[::-1])  # 输出: olleh,反转字符串

字符串长度

使用len()函数来获取字符串的长度(即字符数)。

s = "hello"  
print(len(s))  # 输出: 5

字符串查找

使用find()或index()方法来查找子字符串在字符串中的位置。如果未找到,find()返回-1,而index()会抛出ValueError。

s = "hello world"  
print(s.find("world"))  # 输出: 6  
print(s.index("python"))  # 抛出 ValueError

字符串分割

使用split()方法根据指定的分隔符将字符串分割成列表。

s = "apple,banana,cherry"  
print(s.split(","))  # 输出: ['apple', 'banana', 'cherry']

字符串去空格

使用strip()方法去除字符串两端的空白字符(包括空格、换行符\n、制表符\t等)。

s = "   hello world   "  
print(s.strip())  # 输出: hello world

字符串大小写转换
使用upper()、lower()、capitalize()、title()等方法来转换字符串的大小写。

s = "hello world"  
print(s.upper())  # 输出: HELLO WORLD  
print(s.lower())  # 输出: hello world  
print(s.capitalize())  # 输出: Hello world  
print(s.title())  # 输出: Hello World
  • 15
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值