python初识字符串

前言

记录一下python编程学习过程。

时间:2023年12月25日 - 2024年1月7日
有事情耽搁,有点懒

字符串

在Python中,字符串是存储文本的数据类型。字符串可以包含字母、数字、符号和空格。Python中的字符串被定义为在单引号(')、双引号(")或三引号('''""")中的字符序列。

s1 = 'hello'
s2 = "world"
s3 = '''这是
多行
字符串'''
s4 = """另一个
多行
字符串"""

字符串操作

Python中的字符串提供了许多内置方法进行操作,比如:

  • len(str): 返回字符串的长度。
  • str.upper(): 返回全部大写的字符串。
  • str.lower(): 返回全部小写的字符串。
  • str.capitalize(): 将字符串的第一个字符大写。
  • str.replace(old, new): 替换字符串中的子串。
  • str.split(sep): 将字符串按指定分隔符分割成列表。
  • str.strip(): 去除字符串两端的空格或指定字符。

索引和切片

字符串中的字符可以通过索引访问,索引从0开始。Python也支持负索引,-1表示最后一个字符。

str = "Hello, World!"
print(str[0])   # 'H'
print(str[-1])  # '!'
print(str[2:5]) # 'llo' (切片操作)

在Python中,切片操作可以使用步长(stride)来控制。步长定义了在切片过程中跳过的元素数量。基本的切片语法是 [start:end:step],其中 step 就是步长。

  • start 表示切片开始的位置。
  • end 表示切片结束的位置(不包括此位置)。
  • step 表示在两个元素之间的间隔,即步长。

如果步长为正,切片从左向右提取元素;如果步长为负,切片从右向左提取元素。

假设我们有一个字符串 "Hello World",我们可以使用不同的步长来进行切片操作:

str = "Hello World"

# 步长为1(默认值)
print(str[0:5:1])  # Hello

# 步长为2
print(str[0:5:2])  # Hlo

# 没有开始和结束,步长为2
print(str[::2])    # HloWrd

# 步长为-1,反向
print(str[::-1])   # dlroW olleH

# 步长为-2,从字符串末尾开始,每隔一个字符取一个
print(str[::-2])   # drWolH

使用步长,你可以很灵活地从序列中提取需要的部分。在没有指定 startend 的情况下,使用正步长会从序列的开头开始到结尾,使用负步长会从序列的末尾开始到开头。

字符串是不可变的

在Python中,字符串是不可变的,这意味着你不能改变字符串中的单个字符。但你可以通过拼接和其他操作来创建新的字符串。

str = "Hello"
str = str + " World"  # 正确
# str[0] = "h"       # 错误,会引发TypeError

字符串格式化

Python提供了几种方式来格式化字符串:

  1. 使用 % 操作符:

    name = "Alice"
    age = 25
    print("%s is %d years old." % (name, age))
    
  2. 使用 str.format() 方法:

    print("{} is {} years old.".format(name, age))
    
  3. 使用 f-string (Python 3.6+):

    print(f"{name} is {age} years old.")
    

    字符串是Python中最常用的数据类型之一,用于处理各种文本数据。

字符串的切割和替换

在Python中,字符串可以通过内置的方法轻松地进行切割和替换。下面是这两种操作的基本用法:

字符串切割

字符串切割通常是通过 split() 方法来实现的。这个方法将字符串分割成子字符串,并返回一个列表。

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

在上面的例子中,字符串 text 被逗号加空格 ", " 分割成了多个部分。

字符串替换

字符串替换可以通过 replace() 方法来实现。这个方法将字符串中的某个子串替换成另一个子串。

text = "I like oranges"
new_text = text.replace("oranges", "apples")
print(new_text)  # 输出: I like apples

在这个例子中,"oranges" 被替换成了 "apples"

进阶用法

  • 如果你只想分割字符串的几个部分,可以传递一个额外的参数给 split() 方法,这个参数指定了分割的次数。
text = "apple, banana, cherry"
result = text.split(", ", 1)
print(result)  # 输出: ['apple', 'banana, cherry']
  • replace() 方法也可以接收一个可选的第三个参数,表示替换的最大次数。
text = "hello world, hello universe, hello galaxy"
new_text = text.replace("hello", "hi", 2)
print(new_text)  # 输出: hi world, hi universe, hello galaxy

这些方法是处理字符串时非常有用的工具,可以用于各种文本处理和数据清洗任务。

字符串的查找和判断

在Python中,你可以使用多种方法来查找字符串中的子串,以及判断字符串是否符合特定的条件。这些方法包括:

字符串查找

  1. find() 和 rfind()
    • find() 方法在字符串中查找子串,并返回子串的最低索引。如果未找到子串,则返回 -1。
    • rfind() 方法类似,但它返回的是子串在字符串中最后出现的位置。
text = "hello world"
index = text.find("world")
print(index)  # 输出: 6

index = text.find("python")
print(index)  # 输出: -1
  1. index() 和 rindex()

    • 这些方法与 find()rfind() 类似,但如果子串不存在,它们会引发一个ValueError 异常。

      text = "hello world"
      try:
          index = text.index("world")
          print(index)  # 输出: 6
          index = text.index("python")
      except ValueError:
          print("Substring not found")
      
  2. in 操作符

    • 可以使用 in 关键字来检查一个字符串是否包含另一个字符串。
    text = "hello world"
    if "world" in text:
        print("Substring found")
    else:
        print("Substring not found")
    

    字符串判断

    Python还提供了一系列的方法来判断字符串是否符合特定的格式:

    1. isalpha()

      • 检查字符串是否只包含字母。
    2. isdigit()

      • 检查字符串是否只包含数字。
    3. isalnum()

      • 检查字符串是否只由字母和数字组成。
    4. isspace()

      • 检查字符串是否只包含空格。
    5. islower()

      • 检查字符串中的所有字母是否都是小写。
    6. isupper()

      • 检查字符串中的所有字母是否都是大写。
    7. istitle()

      • 检查字符串是否符合标题格式(每个单词的首字母大写)。
    8. startswith() 和 endswith()

      • 检查字符串是否以特定的子串开始或结束。
      text = "Hello World"
      print(text.startswith("Hello"))  # 输出: True
      print(text.endswith("World"))    # 输出: True
      

你可能感兴趣的:(python,编程语言,python,开发语言)