资讯专栏INFORMATION COLUMN

Python 101: 和字符串相关的常用操作

shadowbook / 2394人阅读

摘要:和字符串相关的常用操作泊学视频学习泊学阅读文档在中,最常用的一类数据类型,莫过于字符串了。在接下来的两小节内容里,我们就来分享和字符串相关的各种最常用的操作。以上,就是这一节的内容,我们了解了字符串的创建常用操作以及获取帮助的方式。

如果你正在找一个轻松愉快,但又紧凑高效的Python视频,Python 101这个系列就是专门为你设计的。我们会以一个开发者理解编程语言的视角,向大家完整介绍Python语言本身、Python标准库、如何使用Python编写常用的代码片段、以及如何管理和发布你的Python代码。现如今,Python已经成为了AI领域最炙手可热的编程语言,无论你手头的工作是否会用到Python,这绝对都是值得投资的一项编程技能。Don"t hesitate, let"s go.

和字符串相关的常用操作

泊学4K视频学习
泊学阅读文档

在Python中,最常用的一类数据类型,莫过于字符串了。在接下来的两小节内容里,我们就来分享和字符串相关的各种最常用的操作。

如何创建一个字符串

我们先来看如何创建字符串。和其他弱若类型脚本语言一样,我们可以用单引号或双引号创建字符串:

stringInDoubleQuotes = "Hello Python!"
stringInSingleQuotes = "Hello Python!"

或者,如果字符串的内容需要跨过多行,还可以使用“三引号”的形式:

stringInTripleQuotes = """Hello Python!
This might be a long string
going through multiple lines.
"""

基于这样的用法,如果我们要在字符串中使用双引号,就把它放在单引号包围的字符串里,反之亦然:

stringInDoubleQuotes = "Hello "Python"!"
stringInSingleQuotes = "Hello "Python"!"

并且,我们还可以在“三引号”包围的字符串里,使用单引号和双引号:

stringInTripleQuotes = """Hello "Python"!
This might be a "long string"
acrossing multiple lines.
"""

除了直接用字面值创建字符串之外,我们还可以用数字类型创建字符串:

aNumber = 123
aString = str(number)

但是,用字符串创建数字类型的操作,却不一定总能成功。例如,下面的代码,就会导致一个运行时错误:

error = int("abc")

"""
Traceback (most recent call last):
  File "/Users/puretears/Desktop/tmp/aa.py", line 2, in 
    int("abc")
ValueError: invalid literal for int() with base 10: "abc"
"""

只有当字符串的字面值真的表示一个数字的时候,转换才可以完成:

oneTwoThree = int("123")

另外,字符串在Python中是只读的。一旦创建完成,就不能像C语言一样用位置去修改了。例如,下面的代码,也会导致编译错误:

aString[0] = 0

"""
Traceback (most recent call last):
  File "/Users/puretears/Desktop/tmp/aa.py", line 2, in 
    aString[0] = 0
TypeError: "str" object does not support item assignment
"""

最后一个关于字符串创建要说明的是,在Python 2和Python 3中,默认使用的字符编码是不同的。Python 2中,使用的是ASCII编码,为了使用unicode编码,需要明确在字符串前面使用小写字母u,像这样:

stringInDoubleQuotes = u"Hello Python!"

虽然,这样的语法在Python 3中也适用,但却没必要这样。因为Python 3的字符串,默认使用的就是unicode编码。

常用的字符串操作

了解了如何创建字符串之后,我们来看一些常用的字符串操作,它们大多都简单易行。

首先,我们可以用加号直接连接两个字符串:

action = "Hello "
name = "Mars!"
welcome = action + name # Hello Mars!

其次,我们可以直接对字符串使用upper()lower()方法转换字符串的大小写:

welcome.upper() # hello mars!
welcome.lower() # HELLO MARS!

第三,我们可以用stripe()方法直接去掉字符串的首尾空格:

action.strip()
获取API帮助信息

如果我们要查看字符串类型支持的所有方法,可以使用dir方法:

print(dir(action))

"""
["__add__", "__class__", "__contains__", "__delattr__", "__dir__", "__doc__", "__eq__", "__format__", "__ge__", "__getattribute__", "__getitem__", "__getnewargs__", "__gt__", "__hash__", "__init__", "__init_subclass__", "__iter__", "__le__", "__len__", "__lt__", "__mod__", "__mul__", "__ne__", "__new__", "__reduce__", "__reduce_ex__", "__repr__", "__rmod__", "__rmul__", "__setattr__", "__sizeof__", "__str__", "__subclasshook__", "capitalize", "casefold", "center", "count", "encode", "endswith", "expandtabs", "find", "format", "format_map", "index", "isalnum", "isalpha", "isdecimal", "isdigit", "isidentifier", "islower", "isnumeric", "isprintable", "isspace", "istitle", "isupper", "join", "ljust", "lower", "lstrip", "maketrans", "partition", "replace", "rfind", "rindex", "rjust", "rpartition", "rsplit", "rstrip", "split", "splitlines", "startswith", "strip", "swapcase", "title", "translate", "upper", "zfill"]
"""

这样,我们就会得到一个数组,包含了字符串支持的所有操作。如果要查看某个方法的具体帮助,可以使用help方法:

print(help(action.count))

"""
count(...) method of builtins.str instance
    S.count(sub[, start[, end]]) -> int

    Return the number of non-overlapping occurrences of substring sub in
    string S[start:end].  Optional arguments start and end are
    interpreted as in slice notation.
"""

这样,我们就可以看到方法的签名,以及一个简短的描述信息了。

分割字符串

从上面count的描述信息可以看到,它接受一个形如S[start:end]这样的参数,在Python里,这叫做String slicing。当我们对字符串类型使用[]操作符的时候,既可以像C一样,使用单个字符的位置读取内容:

action[0] # H

也可以使用一个range,截取字符串的一部分:

hello = action[0:5] # Hello

要说明的是,在Python里,0:5这样的写法,是一个半闭半开区间,就如同Swift中的0..<5一样。因此,hello的值,是字符串Hello,而不是Hello加上一个空格。

What"s next?

以上,就是这一节的内容,我们了解了字符串的创建、常用操作以及获取API帮助的方式。实际上,除了单纯的使用字面值或者数字之外,我们还可以使用某种形式的模板,定制字符串的内容,这叫做string template,在下一节,我们就来了解它的两种不同用法。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40710.html

相关文章

  • Python——基本数据类型(模块2: time库使用)(实例3:文本进度条)

    摘要:前言本篇主要介绍基本数据类型,以文本进度条为例,介绍库的使用。 前言 本篇主要介绍基本数据类型,以文本进度条为例,介绍time库的使用。 并在最后对蟒蛇绘制的代码进...

    Jenny_Tong 评论0 收藏0
  • PHP中packunpack函数

    摘要:鉴于文件读写网络编程,或者说字节流处理的重要性,掌握这两个函数是迈向高级编程的基础。相比之下字节处理门庭冷落,相关函数寥寥无几。上述是函数简单的使用场景,接下来分别介绍和函数。如其名,函数的工作是将数据按照格式打包成字节数组。 转载请注明文章出处:https://tlanyan.me/php-pack-a... PHP有两个重要的冷门函数:pack和unpack。在网络编程,读写图像...

    Lin_R 评论0 收藏0
  • [Python]容器类变量使用学习

    摘要:的强大之处在于数据操作的方便和大类的第三方本文主要是学习收集数据操作相关的内容相关内容通过代码对基本内容进行学习这是一个空的注意这不是一个变量,而是一个类型的变量注意与上面的例子对比,这里在括号内加了一个逗号,变量类型为变量包含多个元素,元 0:Python的强大之处在于数据操作的方便和大类的第三方module,本文主要是学习收集数据操作相关的内容 1:Tuple相关内容 #通过代码对...

    李增田 评论0 收藏0
  • Python爬虫入门教程 7-100 蜂鸟网图片爬取之二

    摘要:蜂鸟网图片简介今天玩点新鲜的,使用一个新库,利用它提高咱爬虫的爬取速度。上下文不在提示,自行搜索相关资料即可创建一个对象,然后用该对象去打开网页。可以进行多项操作,比如等代码中等待网页数据返回创建线程,方法负责安排执行中的任务。 1. 蜂鸟网图片-简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度。 安装模块常规套路 pip install aiohtt...

    z2xy 评论0 收藏0
  • Python爬虫入门教程 7-100 蜂鸟网图片爬取之二

    摘要:蜂鸟网图片简介今天玩点新鲜的,使用一个新库,利用它提高咱爬虫的爬取速度。上下文不在提示,自行搜索相关资料即可创建一个对象,然后用该对象去打开网页。可以进行多项操作,比如等代码中等待网页数据返回创建线程,方法负责安排执行中的任务。 1. 蜂鸟网图片-简介 今天玩点新鲜的,使用一个新库 aiohttp ,利用它提高咱爬虫的爬取速度。 安装模块常规套路 pip install aiohtt...

    hufeng 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<