Python 超高频常见字符操作【建议收藏】

2023-11-10 10:46:59 浏览数 (1)

前言

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

1. 字符串截取

在 Python 中,可以使用 **切片 **(slicing)来截取字符串。切片的 **语法是 string[start:end] **,其中 **start 是截取的起始位置(包含) **,而 **end 是截取的结束位置(不包含) **。以下是一些示例:

代码语言:javascript复制
string = "Hello, World!"

# 截取字符串的前五个字符
substring = string[0:5]
print(substring)  # 输出: Hello

# 截取字符串的第六个字符到倒数第二个字符
substring = string[5:-1]
print(substring)  # 输出: , World

# 截取字符串的最后五个字符
substring = string[-5:]
print(substring)  # 输出: World!

# 截取字符串的所有字符,步长为2
substring = string[::2]
print(substring)  # 输出: Hlo Wrd

# 倒序截取字符串的所有字符
substring = string[::-1]
print(substring)  # 输出: !dlroW ,olleH
  • • 请注意,切片操作并不会修改原始字符串,而是返回一个新的截取后的字符串。如果不指定起始位置或结束位置,切片操作将 **默认使用字符串的开头和结尾作为起始位置和结束位置 **。
  • • 此外, **还可以使用函数来截取字符串 **, **例如 string.split() 可以将字符串拆分为多个子字符串,并返回一个列表 **。**还可以使用正则表达式来匹配和提取所需部分的字符串 **。这里提供的是一种常见的基本方式,而根据具体的需求,可能还有其他更适用的方法。

2. 字符串拼接

在 Python 中,可以使用多种方式进行字符串的连接。下面是一些常用的方法:

  • • 使用 ** 操作符 **:可以使用 操作符将两个字符串连接在一起。
代码语言:javascript复制
str1 = 'Hello'
str2 = 'World'
result = str1   ', '   str2
print(result)  # 输出: Hello, World
  • • 使用 ** = 操作符 **:可以使用 = 操作符将一个字符串连接到另一个字符串上,相当于在原始字符串的末尾追加另一个字符串。
代码语言:javascript复制
str1 = 'Hello'
str1  = ', World'
print(str1)  # 输出: Hello, World
  • • 使用 **str.join() 方法 **:是一个字符串方法,用于将多个字符串连接起来,通过指定一个可迭代对象作为参数。语法格式如下:
代码语言:javascript复制
str.join(iterable)

str 是要用作分隔符的字符串,iterable 是一个可迭代对象,可以是列表、元组、字符串等。

代码语言:javascript复制
str_list = ['Hello', 'World']
result = ', '.join(str_list)
print(result)  # 输出: Hello, World
  • • 使用 **str.format() 方法 **:可以使用 str.format() 方法将一个或多个字符串插入到另一个字符串的特定位置。语法格式如下:
代码语言:javascript复制
str.format(*args, **kwargs)

其中,str 是要进行格式化的字符串,args 是位置参数(可选),kwargs 是关键字参数(可选)

代码语言:javascript复制
str1 = 'Hello'
str2 = 'World'
result = '{}, {}'.format(str1, str2)
print(result)  # 输出: Hello, World
  • • 使用 **f-strings **(格式化字符串字面值):f-strings(格式化字符串字面值)是 Python 3.6 引入的一种字符串格式化方法,它提供了一种简洁、直观和易于阅读的方式来将变量、表达式等嵌入到字符串中。f-strings 的语法格式如下:
代码语言:javascript复制
f"string {expression}"

在这里,string 是普通字符串,而 {expression} 是一个表达式,它会被计算并插入到字符串中。

代码语言:javascript复制
str1 = 'Hello'
str2 = 'World'
result = f'{str1}, {str2}'
print(result)  # 输出: Hello, World
  • • 这些方法中,使用 f-strings 通常是最简洁和推荐的方法。但根据具体的需求和 Python 的版本,选择合适的方法进行字符串连接即可。

3. 字符串搜索

要判断一个字符串是否包含另一个字符串,你可以使用 Python 中的 in 关键字或者字符串的 find() 方法。下面是两种判断 字符串包含 的方法示例:

  • • 方法一:使用 in 关键字进行判断
代码语言:javascript复制
string = "Hello, World!"

# 使用 `in` 关键字判断是否包含某字符串
if "World" in string:
    print("包含")
else:
    print("不包含")

在上述示例中,我们使用 in 关键字判断字符串 “World” 是否存在于变量 string 中。如果存在,则输出 “包含”;否则,输出 “不包含”。

  • • 方法二:使用 find() 方法进行判断
代码语言:javascript复制
string = "Hello, World!"

# 使用 `find()` 方法判断是否包含某字符串
if string.find("World") != -1:
    print("包含")
else:
    print("不包含")

在上述示例中,我们使用字符串的 find() 方法查找子字符串 “World” 在变量 string 中的位置。如果返回的索引不为 -1,则说明存在子字符串,输出 “包含”;否则,输出 “不包含”。两种方法的选择取决于你具体的需求,in 关键字更简洁直观,而 find() 方法可以获取匹配的位置信息。

4. 字符串格式化

字符串格式化是一种将变量或数据插入到字符串中的方法,以创建具有特定格式的文本。在 Python 中,字符串格式化可以通过多种方式实现。

1. 百分号(%)操作符 一种常用的字符串格式化方式是使用 **百分号(%)操作符 **。这种方法使用占位符来表示要插入的变量,并在 % 操作符后面提供相应的值。例如:

代码语言:javascript复制
name = "Alice"
age = 25
message = "My name is %s and I am %d years old." % (name, age)
print(message)

输出结果将是:

代码语言:javascript复制
My name is Alice and I am 25 years old.

在上面的例子中,%s 是字符串占位符,%d 是整数占位符。% 操作符后的括号中依次提供了要插入的变量(name 和 age)。

2. python 字符串格式化符号:

符 号

描述

%c

格式化字符及其 ASCII 码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同 %e,用科学计数法格式化浮点数

%g

%f 和 %e 的简写

%G

%f 和 %E 的简写

%p

用十六进制数格式化变量的地址

3. 格式化操作符辅助指令:

符号

功能

*

定义宽度或者小数点精度

-

用做左对齐

在正数前面显示加号( )

< sp >

在正数前面显示空格

#

在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)

0

显示的数字前面填充’0’而不是默认的空格

%

‘%%‘输出一个单一的’%’

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

4. format 方法

另一种字符串格式化的方式是使用 **format() **方法。这种方法使用 {} 和 : 来代替以前的 % 。format 函数可以接受不限个参数,位置可以不按顺序。并使用 format()方法提供要插入的值。例如:

代码语言:javascript复制
name = "Bob"
age = 30
message = "My name is {} and I am {} years old.".format(name, age)
print(message)

输出结果将是:

代码语言:javascript复制
My name is Bob and I am 30 years old.

在这个例子中,大括号{}表示占位符,format()方法中依次提供了要插入的变量。

5. 数字格式化

下表展示了 str.format() 格式化数字的多种方法:

代码语言:javascript复制
>>> print("{:.2f}".format(3.1415926))
3.14

数字

格式

输出

描述

3.1415926

{:.2f}

3.14

保留小数点后两位

3.1415926

{: .2f}

3.14

带符号保留小数点后两位

-1

{:-.2f}

-1.00

带符号保留小数点后两位

2.71828

{:.0f}

3

不带小数

5

{:0>2d}

05

数字补零 (填充左边, 宽度为 2)

5

{:x<4d}

5xxx

数字补 x (填充右边, 宽度为 4)

10

{:x<4d}

10xx

数字补 x (填充右边, 宽度为 4)

1000000

{:,}

1,000,000

以逗号分隔的数字格式

0.25

{:.2%}

25.00%

百分比格式

1000000000

{:.2e}

1.00e 09

指数记法

13

{:>10d}

13

右对齐 (默认, 宽度为 10)

13

{:<10d}

13

左对齐 (宽度为 10)

13

{:^10d}

13

中间对齐 (宽度为 10)

11

‘{:b}’.format(11)‘{:d}’.format(11)‘{

0 人点赞