1、字符串的基本操作

  1. 字符串连接:使用 + 运算符可以将两个字符串连接起来。
    str1 = "Hello"
    str2 = "World"
    result = str1 + " " + str2
    print(result)
    
  2. 字符串复制:使用 * 运算符可以将一个字符串复制多次。
    original = "abc"
    repeated = original * 3
    print(repeated)
    
  3. 字符串长度:使用 len() 函数可以获取字符串的长度。
    text = "Hello, World!"
    length = len(text)
    print(length)
    
  4. 字符串索引和切片:使用索引获取字符串中的单个字符,索引从0开始。
    text = "Python"
    first_char = text[0]
    print(first_char)
    

    使用切片获取子字符串。

    text = "Python"
    sub_str = text[1:4]  # 获取索引1到3的子字符串
    print(sub_str)
    
  5. 字符串查找:使用 find() 方法可以查找子字符串在主字符串中的位置。
    text = "Hello, World!"
    index = text.find("World")
    print(index)
    
  6. 字符串替换:使用 replace() 方法可以替换字符串中的子字符串。

    text = "Hello, World!"
    new_text = text.replace("World", "Universe")
    print(new_text)
    
  7. 字符串大小写转换:使用 lower() 和 upper() 方法可以将字符串转换为小写和大写。

    text = "Hello"
    lower_case = text.lower()
    upper_case = text.upper()
    
  8. 字符串去除空格:使用 strip() 方法可以去除字符串两端的空格。

    text = "   Some text with spaces   "
    trimmed_text = text.strip()
    

    也可以选择使用 lstrip() 方法(只去除左侧空格)或 rstrip() 方法(只去除右侧空格)来实现单侧空格的去除。例如:

    text = "   Hello, World!   "
    left_stripped_text = text.lstrip()  # 去除左侧空格
    right_stripped_text = text.rstrip()  # 去除右侧空格
    

    strip()也允许指定一个字符集合作为参数,用于去除字符串两端包含在该字符集合中的字符。以下是 strip(char) 方法的示例:

    text = "+++Hello, World!+++"
    stripped_text = text.strip('+')
    
    print(stripped_text)#输出Hello, World!
    
    

    lstrip(),rstrip()也一样

  9. 将一个字符串分割成多个子字符串:

    在 Python 中,split() 方法是用于将一个字符串分割成多个子字符串的方法。默认情况下,split() 方法使用空格作为分隔符,将字符串分割成一个字符串列表。也可以指定其他分隔符作为参数。

    以下是 split() 方法的基本用法:

    text = "Hello, World!"
    words = text.split()
    
    print(words)
    

    上述代码会输出:

    ['Hello,', 'World!']
    

    在这个例子中,默认的空格作为分隔符,将字符串 "Hello, World!" 分割成了两个子字符串 "Hello," 和 "World!"。

    还可以使用自定义的分隔符。例如:

    text = "apple,banana,orange"
    fruits = text.split(',')
    
    print(fruits)
    

    上述代码会输出:

    ['apple', 'banana', 'orange']
    

    在这个例子中,逗号 , 被指定为分隔符,将字符串 "apple,banana,orange" 分割成了一个包含三个元素的列表。

    需要注意的是,split() 方法返回一个包含分割后子字符串的列表。如果不提供分隔符,默认使用空格分割。如果字符串中有连续的分隔符,split() 方法会将它们视为一个分隔符,不会在结果列表中添加空字符串。

  10. 将一个字符串居中:

    center(width, char) 是字符串方法,用于将一个字符串居中,并在两侧填充指定字符,使其达到指定的宽度。

    以下是 center(width, char) 方法的示例:

    text = "Hello, World!"
    centered_text = text.center(20, '*')
    
    print(centered_text)
    

    上述代码输出:

    ***Hello, World!***
    

    在这个例子中,center(20, '*') 方法将字符串 text 居中,并使用星号 * 在两侧填充,使整个字符串的宽度为 20 个字符。

    如果指定的宽度小于原始字符串的长度,则返回原始字符串,因为无需填充。

    你可以根据需要选择不同的填充字符,或者不指定填充字符,默认使用空格进行填充。例如:

    text = "Hello, World!"
    centered_text_spaces = text.center(20)  # 默认使用空格填充
    
    print(centered_text_spaces)
    

2、格式化字符串

1、占位符格式化字符串:

在 Python 中,字符串格式化的占位符可以使用 % 运算符进行,这称为旧式字符串格式化。

以下是一个使用占位符 % 的字符串格式化示例:

name = "Charlie"
age = 28

formatted_string = "My name is %s and I am %d years old." % (name, age)

print(formatted_string)

上述代码输出:

My name is Charlie and I am 28 years old.

在这个例子中,%s 表示字符串占位符,%d 表示整数占位符。% 运算符后的括号中的值会按顺序替换相应的占位符。

以下是一些常用的占位符:

  • %s: 字符串
  • %d: 十进制整数
  • %f: 浮点数

你可以根据需要选择不同的占位符。如果要格式化多个值,需要将它们放在一个元组中,作为 % 运算符右侧的值。

需要注意的是,旧式字符串格式化在 Python 3.6 及以上版本中已不推荐使用,而推荐使用 format() 方法或 f-strings。这两种方法更灵活、可读性更好,并且有更好的性能。

2、f-strings格式化字符串:

f-strings 是在 Python 3.6 及以上版本引入的一种字符串格式化方法。它使用在字符串前加上字母 "f" 并包含花括号 {} 来表示表达式的方式。这使得在字符串中嵌入变量和表达式更加直观和简洁。

以下是一些使用 f-strings 的示例:

  1. 基本用法:

    name = "Alice"
    age = 30
    
    formatted_string = f"My name is {name} and I am {age} years old."
    print(formatted_string)
    

    输出:

    My name is Alice and I am 30 years old.
    
  2. 表达式嵌入:

    x = 5
    y = 10
    
    result = f"The sum of {x} and {y} is {x + y}."
    print(result)
    

    输出:

    The sum of 5 and 10 is 15.
    
  3. 数字格式化:

    pi_value = 3.14159
    formatted_pi = f"The value of pi is {pi_value:.2f}"
    print(formatted_pi)
    

    输出:

    The value of pi is 3.14
    
  4. 使用变量和表达式:

    a = 3
    b = 4
    
    result = f"The square of the sum of {a} and {b} is {(a + b)**2}"
    print(result)
    

    输出:

    The square of the sum of 3 and 4 is 49.
    

    f-strings 的优势在于它们简洁、易读,而且性能通常比其他字符串格式化方法更好。它是一种推荐使用的字符串格式化方式,特别是在需要动态生成字符串时。

3、format()格式化字符串:

在 Python 中,使用 format() 方法进行字符串格式化是一种更现代和灵活的方式。这个方法允许你使用大括号 {} 作为占位符,并通过 format() 方法中的参数进行替换。

以下是一个使用 format() 方法的字符串格式化示例:

name = "David"
age = 35

formatted_string = "My name is {} and I am {} years old.".format(name, age)

print(formatted_string)

上述代码输出:

My name is David and I am 35 years old.

在这个例子中,{} 占位符会按照它们在字符串中的顺序被 format() 方法中的参数替换。

还可以使用位置参数或关键字参数来明确指定占位符的替换值:

formatted_string = "My name is {0} and I am {1} years old.".format(name, age)
# 或者
formatted_string = "My name is {name} and I am {age} years old.".format(name=name, age=age)

这两种方式都可以达到相同的效果。format() 方法也支持更复杂的格式化,例如指定字段宽度、精度等。详细如下文。

4、format详细格式控制:

  1. 字段宽度和对齐:
    text = "Hello"
    formatted_text = "{:>10}".format(text)
    print(formatted_text)
    

    输出:

        Hello
    

    在这个例子中,{:>10} 表示使用字段宽度为 10,并且右对齐。可以使用 < 进行左对齐,^ 进行居中对齐。

  2. 精度控制:

    pi_value = 3.14159
    formatted_pi = "{:.2f}".format(pi_value)
    print(formatted_pi)
    

    输出:

    3.14
    

    在这个例子中,{:.2f} 表示格式化为带有两位小数的浮点数。

  3. 符号、千位分隔符和正负号:

    number = -1234567
    formatted_number = "{:+,}".format(number)
    print(formatted_number)
    

    输出:

    -1,234,567
    
    在这个例子中,{:+,}表示包括正负号并使用千位分隔符。{:-,}和 {:+,}都是在格式化数字时使用的格式说明符,它们分别表示不显示正号和显示正号,并且使用千位分隔符。
  4. 二进制、八进制和十六进制:
    value = 42
    formatted_binary = "Binary: {:b}".format(value)
    formatted_octal = "Octal: {:o}".format(value)
    formatted_hex = "Hexadecimal: {:x}".format(value)
    print(formatted_binary)
    print(formatted_octal)
    print(formatted_hex)
    

    输出:

    Binary: 101010
    Octal: 52
    Hexadecimal: 2a
    
01-22 20:17