初学__Python——Python数据类型之字符串

22 篇文章 2 订阅
9 篇文章 0 订阅

目录

一、Python中的字符串

二、字符串中的转义字符

三、操作字符串

四、字符串中的索引与分片

五、格式化字符串

六、字符串、数字类型的转换

七、原始字符串(Raw String)


一、Python中的字符串

Python中的字符串用于表示和存储文本。字符串通常由单引号('...')、双引号("...")或者三引号('''...''',"""...""")包围,其中由三引号包围的字符串可以由多行组成。在Python脚本中,大段的叙述性字符串通常由三引号包围。

 字符串中可以包含数字、字母、中文字符、特殊符号,以及一些不可见的控制字符,如换行符、制表符等,

字符串的形式一般如下:

>>> str1 = 'abcd'
>>> str2 = "python"
>>> str3 = '123'
>>> str4 = 'a = 1 + 2 ^ 3 * 4'
>>> str5 = 'Can\'t'                 # 在字符串中使用转义字符包含一个单引号
>>> str5
"Can't"
>>> str6 = "Can't"                  # 使用双引号包含一个单引号
>>> str6
"Can't"

二、字符串中的转义字符

如果要在字符中包含控制字符,或者一些在Python中表示特殊含义的字符,需要使用转义字符。

常见转义字符
转义字符含义
\n换行符
\t制表符
\r回车
\\表示\
\'表示一个单引号,而不是字符串结束
\"表示一个双引号,而不是字符串结束

转义字符的使用示例:

>>> t = 'Hi,\tPython!'        # 在字符串中加入制表符
>>> print(t)                  
Hi,     Python!               # 在 Hi, 与 Python! 之间有一段制表符的距离
>>> t
'Hi,\tPython!'                # 只有在使用 print 函数输出字符串时才会解释字符串中的转义字符
>>> t = 'Hi,\nPython!'        # 在字符串中加入换行符
>>> print(t)
Hi,
Python!
>>> t = 'Hi,\\nPython!'       # 如果在字符串中加入两个“\\”,则是对第2个“\”进行转义输入“\”字符本身
>>> print(t)
Hi,\nPython!

三、操作字符串

常用字符串操作函数
字符串操作描述
string.capitalize()将字符串的第一个字母大写
string.count()获得字符串中某一子字符串的数目
string.find()获得字符串中某一子字符串的起始位置
string.isalnum()检测字符串中是否仅包含0-9、A-Z、a-z
string.isalpha()检测字符串中是否仅包含A-Z、a-z
string.isdigit()检测字符串中是否仅包含数字
string.islower()检测字符串中是否均为小写字母
string.isspace()检测字符串中所有字符是否均为空白字符
string.istitle()检测字符串中的单词是否为首字母大写
string.isupper()检测字符串中是否均为大写字母
string.isjoin()连接字符串
string.lower()将字符串全部转换为小写
string.split()分割字符串
string.swapcase()将字符串中大写字母转换为小写、小写字母转换为大写
string.title()将字符串中的单词首字母大写
string.upper将字符串中全部字符转换为大写
len(string)获取字符串长度
>>> str = 'hello,tutu!'
>>> str.capitalize()
'Hello,tutu!'
>>> str.count('t')
2
>>> str.find('hi')     # 获得字符串中 'hi' 的起始位置
-1                     # -1 表示未找到
>>> str.find('t')
6                      # 从 0 开始也就是字符串中的第 6 个字符
>>> str.find('o')
4                      # 从 0 开始也就是字符串中的第 4 个字符
>>> str.isalnum()
False
>>> str.isalpha()
False
>>> str.isdigit()
False
>>> str.islower()
True
>>> str.isspace()
False
>>> str.istitle()
False
>>> str.isupper()
False
>>> str.join('BUTTER')   # 连接字符串(以 str 字符串为分隔符连接参数中的每一项)
'Bhello,tutu!Uhello,tutu!Thello,tutu!Thello,tutu!Ehello,tutu!R'
>>> str.join('a')        # 当参数字符串只有一个字符时,则返回参数字符串
'a'
>>> str.upper()
'HELLO,TUTU!'
>>> str.title()
'Hello,Tutu!'
>>> str.split()         # 以空格分割字符串
['hello,tutu!']
>>> str.split(',')      # 以 "," 分割字符串
['hello', 'tutu!']
>>> len(str)
11
>>> str + 'butterfly'   # 使用 "+" 连接字符串
'hello,tutu!butterfly'
>>> str * 3             # 使用 "*" 重复字符串,此处重复三次
'hello,tutu!hello,tutu!hello,tutu!'
>>> str                  # 输出 str ,仍为原来的字符串
'hello,tutu!'

注:在上述的操作中,使用字符串操作函数,或使用运算符对字符串 str 进行操作时,并不会改变字符串 str 本身的内容,而是返回修改后的新字符串,如果要修改原字符串,则可以使用下面的代码。

>>> str = str.title()    # 将 str.title() 函数的返回值赋值给 str ,即修改 str
>>> str
'Hello,Tutu!'
  • string.split( [sep [,maxsplit]])
    • sep:可选参数,指定分割的字符。
    • maxsplit:可选参数,分割次数
>>> str = 'tutu like butterfly!'       # 定义原始字符串
>>> str.split()                        # 以空格分割字符串
['tutu', 'like', 'butterfly!']         # 返回除去空格的字符串列表(分为了 3 个子串)
>>> str.split( None,1)                 # 以空格分割,但只分割一次
['tutu', 'like butterfly!']
>>> str.split( None,0)                 # 相当于不分割
['tutu like butterfly!']
>>> str.split( 't',)                   # 以字母 "t" 分割字符串
['', 'u', 'u like bu', '', 'erfly!']
>>> str.split( 'e',)                   # 以字母 "e" 分割字符串
['tutu lik', ' butt', 'rfly!']

四、字符串中的索引与分片

Python中的字符串相当于一个不可变序列的列表。一旦声明一个字符串,则该字符串中的每个字符都有了自己固定的位置。在Python中可以使用 "[]" 来访问字符串中指定位置上的字符,这种方法类似于C语言中的数组。

与数组类似,在Python字符串中,字符的序号也是从 0 开始的,即 string[0] 表示字符串 string 中的第一个字符

与C语言不同的是,Python还允许以负数表示字符的序号,负数表示从字符串尾部开始计算,此时最后一个字符的序号为 -1 ,而不是 -0 。

>>> str = 'butterfly'
>>> str[1]     # 取字符串中序号为 1 的字符,也就是第 2 个字符
'u'
>>> str[-0]    # -0 即 0,就是取字符串中第一个字符
'b'
>>> str[-1]    # 取字符串中最后一个字符
'y'
>>> str[-3]    # 从字符串尾部开始计算,最后一个字符的序号为 -1,str[-3] 即取倒数第三个字符
'f'
>>> str[1:5]   # 取从字符串中第二个字符到第六个字符的内容,但不包含第六个字符
'utte'
>>> str[1:1]   # 由于不包含第二个字符,故为空
''
>>> str[1:-1]  # 从字符串中第二个字符到最后一个字符,但不包含最后一个字符
'utterfl'
>>> str[0:-2]  # 从字符串中第一个字符到倒数第二个字符,但不包含倒数第二个字符
'butterf'
>>> str[:-2]   # 与 str[0:-2] 相同
'butterf'

五、格式化字符串

在Python中,字符串中的字符顺序是不可变的。但是在某些情况下,可能又要根据不同的需求,要修改字符串的内容。这时就可以使用Python中的格式化字符串功能。

在Python中,可以在字符串中使用以 "%" 开头的字符,以在脚本中改变字符串中的内容。

常用的格式化字符串
%c单个字符
%d十进制整数
%o八进制整数
%s字符串
%x十六进制整数,其中的字母小写
%X十六进制整数,其中的字母大写
>>> s = 'So %s day!'
>>> print(s % 'beautiful')          # 使用 beautifly 替换 %s
So beautiful day!
>>> s % 'beautiful'                 # 与 print(s % 'beautiful') 功能相同
'So beautiful day!'
>>> '1 %c 1 %c %d' % ('+','=',2)    # 使用多个格式化字符
'1 + 1 = 2'
>>> 'x = %x' % 0xA                  # 使用 %x 格式化十六进制,其中的字母小写
'x = a'
>>> 'x = %X' % 0xa                  # 使用 %X 格式化十六进制,其中的字母大写
'x = A'
>>> 'x = %X' % 0xAb
'x = AB'

六、字符串、数字类型的转换

在某些情况下,字符串可能完全由数字组成,并且该字符串还需要在脚本中进行算术运算。此时最简单的操作就是使用 int() 函数将字符串转换为数字,将数字转换为字符串可以使用 str() 函数。

>>> '10' + 4
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str
>>> int('10') + 4
14

七、原始字符串(Raw String)

原始字符串是Python中一类比较特殊的字符串,以大写字母 R 或者小写字母 r 开始。在原始字符串中,字符 "\" 不再表示转义字符的含义

原始字符串是为了正则表达式设计的,也可以用来方便地表示 Windows 系统下的路径,不过,如果路径以 "\" 结尾那么会出错。

>>> import os
>>> path = r'e:\book'            # 使用原始字符串
>>> os.listdir(path)             # 列出目录中的内容
['hello', 'code', 'test']
>>> os.listdir('e:\book')        # Python2.x 中执行这个命令会报错,Python3 中可正常运行
['hello', 'code', 'test']

### 原始字符串中不能以 "\" 结尾

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值