简单 Python 快乐之旅之:Python 基础语法之字符串操作专题


本系列字符串操作专题主要包含一些如何在 Python 编程中使用字符串的示例。在这里你可以学会如何来初始化一个字符串,获取字符串长度,拿到它的子字符串,去除字符串里的空格,大小写转换以及替换掉字符串中的子串等等。

1. 打印字符串到控制台输出

可以使用 print() 函数将字符串打印到控制台。Python 的 print() 函数语法如下:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

其中,

  • objects 表示一次输出多个对象。多个对象之间用逗号分隔
  • sep 输出时对象之间的分隔符。可以是一个字符串或者单个字符。默认为空格
  • end 输出语句后追加的对象。可以是一个字符串或者单个字符。默认为换行符 \n
  • file 要写入的文件对象。默认为 sys.stdout,即系统标准输出:控制台输出
  • flush 是否立刻将输出语句输入到参数 file 指向的对象中。可以是 True 或 False。默认为 False
    可以通过提供相应的参数来覆盖 sependfileflush 的默认值。接下来我们通过示例来演示一下。

1.1. 基本输出语句

基本输出语句.png
在上述示例中我们给 print 语句提供了两个对象,默认的分隔符为空格,既然默认的 end 字符为换行,所以我们打印出 HelloWorld,中间以空格分开,结尾为换一新行。

1.2. 自定义分隔符

自定义分隔符.png
上述示例中我们自定义了一个字符作为分隔符,所以默认的分隔符 (空格) 会被覆盖掉。当然,你也可以使用一个字符串作为分隔符:

1.3. 自定义结束符

自定义结束符.jpg
在上述示例中我们自定义了一个字符作为结束符,所以默认的结束符 (换行) 会被覆盖掉。

2. Python 字符串长度的例子

要计算字符串的长度需要将字符串作为参数传给 len() 函数。len() 函数返回一个表示给定字符串长度的整数。
len() 函数的语法为:

len(mystring)

其中 mystring 就是需要计算出长度的字符串。
在接下来的示例中我们使用 len() 函数来计算出一个字符串的长度。

# Python String Length Example
mystring = 'python examples'
length = len(mystring)
print('length of the string is:', length)

执行和输出:
计算出其长度.png
如果你要输出一个空字符串的长度,len() 将返回零。

mystring = ''
length = len(mystring)
print('length of the string is:', length)

执行和输出:
输出一个空字符串的长度.jpg

3. 子字符串的例子

在 Python 中我们可以通过切割来得到子字符串。字符串切割的语法为:

mystring[a:b]

mystring[a:b] 将会返回 mystring 中从 ab 的字符串。
在接下来的示例中,我们使用以上语法来切割给定字符串的 812 之间的子字符串:

# Python Substring Example
mystring = 'defonds.blog.csdn.net'
substring = mystring[8:12]
print(substring)

执行和输出:
子字符串截取.jpg
由此可以看出 mystring 起始 index 为 0mystring[a:b] 截取的是 mystring 的第 a 到第 b - 1 个字符。这个行为和其他语言是一致的。

4. 去掉字符串起始和结束位置的空格

要去掉出现在字符串起始和结束位置的空格,可以使用 strip() 函数。在接下来的示例中我们分配了一个在开头和结束都有空格的字符串变量,然后我们使用 strip() 函数将环绕在字符串两侧的空格给去除掉:

# Python Strip() – Remove White Spaces at Start and End of String
mystring = '     python examples     '
cleanstring = mystring.strip()
# before strip
print(mystring)
print(len(mystring))
# after strip
print(cleanstring)
print(len(cleanstring))

执行和输出:
去掉字符串起始和结束位置的空格.jpg

5. 字符串大小写转换

要将一个字符串内所有字符转换为小写,可以使用 lower() 方法;要全部转换为大写,可以使用 upper() 方法。以下是一个将字符串转换大小写的例子。

# Python Convert String to Lowercase or Uppercase Example
mystring = 'Python Examples'
print('Original String:', mystring)
lowercase = mystring.lower()
uppercase = mystring.upper()
print('Lowercase String:', lowercase)
print('Uppercase String:', uppercase)

执行和输出:
字符串大小写转换.jpg

6. 字符串替换

可以使用 replace() 方法来替换掉一个字符串。replace() 方法的语法如下:

str.replace(old, new [, count]) 

其中,oldstr 字符串中想要被 new 字符串替换掉 count 次的字符串。count 变量可选。因此如果你不提供 count 参数,所有 old 出现的地方都会被替换为 new。注意这里 old 字符串的匹配是大小写敏感的。

6.1. 字符串的基本替换

在接下来的示例中,我们使用 replace() 方法将字符串中所有的 Examples 替换为 Programs

# Python Replace String Examples
mystring = 'Python Examples. Examples for basic and advanced concepts'
print('Original String:', mystring)
newstr = mystring.replace('Examples', 'Programs')
print('New String:', newstr)

执行和输出:
字符串替换的基本示例.jpg

6.2. 只替换指定次数

接下来进行一个只替换指定次数的示例:

mystring = 'Python Examples. Examples. Examples. Examples. Examples. Examples.'
print('Original String:', mystring)
newstr = mystring.replace('Examples', 'Programs', 3)
print('New String:', newstr)

执行和输出:
只替换指定次数.jpg
可以看到,Examples 出现了 6 次,只有前 3 次得到了替换。

7. 使用定界符分割字符串

可以使用内建 split() 方法来使用定界符分割字符串。split() 方法的语法如下:

str.split(separator, maxsplit)

其中,str 是要被分割的字符串
separator 是进行字符串分割的定界符。如果没有指定定界符,那么 str 字符串将会作为一个整体返回,也就是说分割结果的列表中只有一个元素,即 str 字符串。而如果字符串中有空格的话,会使用字符之间的空格作为定界符,将连在一起的字符作为整体返回,不管之间有多少空格都会作为一个定界符。
maxsplit 为可以完成的最大拆分数。如果未提供,则完成最大可能的拆分。

7.1. 字符串切割示例

在接下来的示例中,我们定义了一个以逗号分隔的字符串,我们将会使用逗号作为定界符对其进行分割,并将结果存放在一个变量里。

# Python Split String by Delimiter
str = 'Python,Examples,Programs,Code,Programming'
chunks = str.split(',')
print(chunks)

执行和输出:
字符串切割示例.png

7.2. 有限的最多分割次数

接下来仍以上述逗号做定界符字符串为例,我们将最大分割次数定为 3

# Python Example to Split String with limited maxsplit
str = 'Python,Examples,Programs,Code,Programming'
chunks = str.split(',', 3)
print(chunks)

执行和输出:
有限的最多分割次数.png
该字符串定界符有 4 个,最多可以被分割四次,最多可以被分割为 5 块。而在上述示例中最多分割了 3 次,分割成了 4 块。

8. 将字符串按照指定长度进行分割

如果要将字符串按照指定长度进行分割,可以使用以下循环:

n = 3 # chunk length
chunks = [str[i:i+n] for i in range(0, len(str), n)]

在接下来的示例中,给定一个由三字字母词一个连接一个组成的字符串,我们现在把每个字母词以 3 为长度分割出来:

# Example to Split String to specific length Chunks
str = 'CarBadBoxNumKeyValRayCppSan'
n = 3
chunks = [str[i : i + n] for i in range(0, len(str), n)]
print(chunks)

执行和输出:
将字符串按照指定长度进行分割.png
本示例应用于对于分割后长度有所限制的场景。

9. 多个空格替换为单个空格

要将字符串中的多个空格替换为单个空格,

  • 使用 split() 用默认定界符将字符串分割
  • 使用 join() 用单个空格将分割后的字符串们再连起来:
    " ".join(mystring.split())

mystring 包含连续的多个空格。示例如下:

# Example to replace continuous multiple white spaces with single space
mystring = 'welome    to  python         examples   '
correctedstring = ' '.join(mystring.split())
print(correctedstring)

执行和输出:
多个空格替换为单个空格.png
可以看到,即使在该字符串的起始和结束的位置也有多个空格,也会被过滤掉。

10. 检查字符串是否只包含字母

要检查字符串是否只包含字母可以使用 isalpha() 函数,如果只包含字母会返回 True,否则返回 False。

bool = str1.isalpha()

我们创建一个字符串然后来看看它是否只包含字母:

# Example to check if String contains only Alpha
str1 = "Hello world. Welcome to Python Examples"
bool = str1.isalpha()
print('str1 contains only alphabets:', bool)

执行和输出:
检查字符串是否只包含字母.png
str1 除了字母之外,还包含两个句点以及若干空格,因此 isalpha() 返回 False。现在我们来使用全字母的字符串来做检查。

str1 = "HelloworldWelcometoPythonExamples"
bool = str1.isalpha()
print('str1 contains only alphabets:', bool)

执行和输出:
检查字符串是否只包含字母2.png

参考资料

发布了273 篇原创文章 · 获赞 1324 · 访问量 649万+

猜你喜欢

转载自blog.csdn.net/defonds/article/details/90266160