python3 字符串的基本用法


python3 字符串的基本用法


Python3 字符串

字符串是 Python 中最常用的数据类型。我们可以使用引号(''"")来创建字符串。

创建字符串很简单,只要为变量分配一个值即可。例如:

var1 = 'Hello World!'
var2 = "Runoob"

Python 访问字符串中的值

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号[]来截取字符串,字符串的截取的语法格式如下:

变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。
img]

如下实例:

var1 = 'Hello World!'
var2 = "Runoob"
 
print ("var1[0]: ", var1[0])
print ("var2[1:5]: ", var2[1:5])

以上实例执行结果:

var1[0]:  H
var2[1:5]:  unoo

Python 字符串更新

你可以截取字符串的一部分并与其他字段拼接,如下实例:

var1 = 'Hello World!'
 
print ("已更新字符串 : ", var1[:6] + 'Runoob!')

以上实例执行结果

已更新字符串 :  Hello Runoob!

Python 转义字符

在需要在字符中使用特殊字符时,python 用反斜杠\转义字符。如下表:

转义字符描述实例
\ (在行尾时)续行符>>> print(“line1 \
… line2 \
… line3”)
line1 line2 line3
>>>
\反斜杠符号>>> print(" \ ")
\
单引号>>> print(’’’)
"双引号>>> print(""")
"
\a响铃>>> print("\a")
执行后电脑有响声。
\b退格(Backspace)>>> print(“Hello \b World!”)
Hello World!
\000>>> print("\000")

>>>
\n换行>>> print("\n")


>>>
\v纵向制表符>>> print(“Hello \v World!”)
Hello
World!
>>>
\t横向制表符>>> print(“Hello \t World!”)
Hello World!
>>>
\r回车>>> print(“Hello\rWorld!”)
World!
\f换页>>> print(“Hello \f World!”)
Hello
World!
>>>
\yyy八进制数,y 代表 0~7 的字符,例如:\012 代表换行。>>> print("\110\145\154\154\157
\40\127\157\162\154\144\41")
Hello World!
\xyy十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行>>> print("\x48\x65\x6c\x6c
\x6f\x20\x57\x6f\x72\x6c\x64\x21")
Hello World!
\other其它的字符以普通格式输出

Python 字符串运算符

下表实例变量 a 值为字符串 “Hello”,b变量值为 “Python”:

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[:]截取字符串中的一部分,遵循左闭右开原则 ,str[0:2]是不包含第3个字符的。a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回True’H’ in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符串返回True** ‘M’ not in a** 输出结果 True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。print( r’\n’ ) print( R’\n’ )
%格式字符串请看下一节内容。
a = "Hello"
b = "Python"
 
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])
 
if( "H" in a) :
    print("H 在变量 a 中")
else :
    print("H 不在变量 a 中")
 
if( "M" not in a) :
    print("M 不在变量 a 中")
else :
    print("M 在变量 a 中")
 
print (r'\n')
print (R'\n')

以上实例输出结果为:

a + b 输出结果: HelloPython
a * 2 输出结果: HelloHello
a[1] 输出结果: e
a[1:4] 输出结果: ell
H 在变量 a 中
M 不在变量 a 中
\n
\n

Python 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

以上实例输出结果:

我叫 小明 今年 10 岁!

python 字符串格式化符号:

符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
在正数前面显示空格
#在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)
0显示的数字前面填充’0’而不是默认的空格
%‘%%‘输出一个单一的’%’
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。


Python 三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下

实例(Python 3.0+)

para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)

以上实例执行结果为:

这是一个多行字符串的实例
多行字符串可以使用制表符
TAB (    )。
也可以使用换行符 [ 
 ]

三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

一个典型的用例是,当你需要一块HTML或者SQL时,这时用字符串组合,特殊字符串转义将会非常的繁琐。

errHTML = '''
<HTML><HEAD><TITLE>
Friends CGI Demo</TITLE></HEAD>
<BODY><H3>ERROR</H3>
<B>%s</B><P>
<FORM><INPUT TYPE=button VALUE=Back
ONCLICK="window.history.back()"></FORM>
</BODY></HTML>
'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')

f-string

f-string 是 python3.6 之后版本添加的,称之为字面量格式化字符串,是新的格式化字符串的语法。

之前我们习惯用百分号 (%):

>>> name = 'Runoob'
>>> 'Hello %s' % name
'Hello Runoob'

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

>>> name = 'Runoob'
>>> f'Hello {name}'  # 替换变量

>>> f'{1+2}'         # 使用表达式
'3'

>>> w = {'name': 'Runoob', 'url': 'www.runoob.com'}
>>> f'{w["name"]}: {w["url"]}'
'Runoob: www.runoob.com'

用了这种方式明显更简单了,不用再去判断使用 %s,还是 %d。

在 Python 3.8 的版本中可以使用 = 符号来拼接运算表达式与结果:

>>> x = 1
>>> print(f'{x+1}')   # Python 3.6
2

>>> x = 1
>>> print(f'{x+1=}')   # Python 3.8
'x+1=2'

Unicode 字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u

在Python3中,所有的字符串都是Unicode字符串。


Python 的字符串内建函数

Python 的字符串常用内建函数如下:

capitalize()

描述

Python capitalize()将字符串的第一个字母变成大写,其他字母变小写。

语法

capitalize()方法语法:

str.capitalize()

参数

  • 无。

返回值

该方法返回一个首字母大写的字符串。

实例

以下实例展示了capitalize()方法的实例:

#!/usr/bin/python3

str = "this is string example from runoob....wow!!!"

print ("str.capitalize() : ", str.capitalize())

以上实例输出结果如下:

str.capitalize() :  This is string example from runoob....wow!!!

center(width, fillchar)

描述

center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

语法

center()方法语法:

str.center(width[, fillchar])

参数

  • width – 字符串的总宽度。
  • fillchar – 填充字符。

返回值

返回一个指定的宽度 width 居中的字符串,如果 width 小于字符串宽度直接返回字符串,否则使用 fillchar 去填充。

实例

以下实例展示了center()方法的实例:

str = "[runoob]"

print ("str.center(40, '*') : ", str.center(40, '*'))

以上实例输出结果如下:

str.center(40, '*') :  ****************[runoob]****************

count(str, beg=0, end=len(string))

描述

count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

语法

count()方法语法:

str.count(sub, start= 0,end=len(string))

参数

  • sub – 搜索的子字符串
  • start – 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
  • end – 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。

返回值

该方法返回子字符串在字符串中出现的次数。

实例

以下实例展示了count()方法的实例:

#!/usr/bin/python3

str="www.runoob.com"
sub='o'
print ("str.count('o') : ", str.count(sub))

sub='run'
print ("str.count('run', 0, 10) : ", str.count(sub,0,10))

以上实例输出结果如下:

str.count('o') :  3
str.count('run', 0, 10) :  1

bytes.decode(encoding=“utf-8”, errors=“strict”)

描述

decode() 方法以指定的编码格式解码 bytes 对象。默认编码为 ‘utf-8’。

语法

decode()方法语法:

bytes.decode(encoding="utf-8", errors="strict")

参数

  • encoding – 要使用的编码,如"UTF-8"。
  • errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。

返回值

该方法返回解码后的字符串。

实例

以下实例展示了decode()方法的实例:

str = "菜鸟教程";
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")

print(str)

print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)

print("UTF-8 解码:", str_utf8.decode('UTF-8','strict'))
print("GBK 解码:", str_gbk.decode('GBK','strict'))

以上实例输出结果如下:

菜鸟教程
UTF-8 编码: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b'
GBK 编码: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc'
UTF-8 解码: 菜鸟教程
GBK 解码: 菜鸟教程

encode(encoding=‘UTF-8’, errors=‘strict’)

描述

encode() 方法以指定的编码格式编码字符串。errors参数可以指定不同的错误处理方案。

语法

encode()方法语法:

str.encode(encoding='UTF-8',errors='strict')

参数

  • encoding – 要使用的编码,如: UTF-8。
  • errors – 设置不同错误的处理方案。默认为 ‘strict’,意为编码错误引起一个UnicodeError。 其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值。

返回值

该方法返回编码后的字符串,它是一个 bytes 对象。

实例

以下实例展示了encode()方法的实例:

str = "菜鸟教程";
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")

print(str)

print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)

print("UTF-8 解码:", str_utf8.decode('UTF-8','strict'))
print("GBK 解码:", str_gbk.decode('GBK','strict'))

以上实例输出结果如下:

菜鸟教程
UTF-8 编码: b'\xe8\x8f\x9c\xe9\xb8\x9f\xe6\x95\x99\xe7\xa8\x8b'
GBK 编码: b'\xb2\xcb\xc4\xf1\xbd\xcc\xb3\xcc'
UTF-8 解码: 菜鸟教程
GBK 解码: 菜鸟教程

endswith(suffix, beg=0, end=len(string))

描述

endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。可选参数 “start” 与 “end” 为检索字符串的开始与结束位置。

语法

endswith()方法语法:

str.endswith(suffix[, start[, end]])

参数

  • suffix – 该参数可以是一个字符串或者是一个元素。
  • start – 字符串中的开始位置。
  • end – 字符中结束位置。

返回值

如果字符串含有指定的后缀返回 True,否则返回 False。

实例

以下实例展示了endswith()方法的实例:

Str='Runoob example....wow!!!'
suffix='!!'
print (Str.endswith(suffix))
print (Str.endswith(suffix,20))
suffix='run'
print (Str.endswith(suffix))
print (Str.endswith(suffix, 0, 19))

以上实例输出结果如下:

True
True
False
False

expandtabs(tabsize=8)

描述

expandtabs() 方法把字符串中的 tab 符号 \t 转为空格,tab 符号 \t 默认的空格数是 8,在第 0、8、16…等处给出制表符位置,如果当前位置到开始位置或上一个制表符位置的字符数不足 8 的倍数则以空格代替。

语法

expandtabs() 方法语法:

str.expandtabs(tabsize=8)

参数

  • tabsize – 指定转换字符串中的 tab 符号 \t 转为空格的字符数。

返回值

该方法返回字符串中的 tab 符号 \t 转为空格后生成的新字符串。

实例

以下实例展示了 expandtabs() 方法的实例:

str = "runoob\t12345\tabc"  
print('原始字符串:', str)

# 默认 8 个空格
# runnob 有 6 个字符,后面的 \t 填充 2 个空格
# 12345 有 5 个字符,后面的 \t 填充 3 个空格
print('替换 \\t 符号:', str.expandtabs())

# 2 个空格
# runnob 有 6 个字符,刚好是 2 的 3 倍,后面的 \t 填充 2 个空格
# 12345 有 5 个字符,不是 2 的倍数,后面的 \t 填充 1 个空格
print('使用 2 个空格替换 \\t 符号:', str.expandtabs(2))

# 3 个空格
print('使用 3 个空格:', str.expandtabs(3))

# 4 个空格
print('使用 4 个空格:', str.expandtabs(4))

# 5 个空格
print('使用 5 个空格:', str.expandtabs(5))

# 6 个空格
print('使用 6 个空格:', str.expandtabs(6))

以上实例输出结果如下:

原始字符串: runoob      12345   abc
替换 \t 符号: runoob  12345   abc
使用 2 个空格替换 \t 符号: runoob  12345 abc
使用 3 个空格: runoob   12345 abc
使用 4 个空格: runoob  12345   abc
使用 5 个空格: runoob    12345     abc
使用 6 个空格: runoob      12345 abc

find(str, beg=0, end=len(string))

描述

find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。

语法

find()方法语法:

str.find(str, beg=0, end=len(string))

参数

  • str – 指定检索的字符串
  • beg – 开始索引,默认为0。
  • end – 结束索引,默认为字符串的长度。

返回值

如果包含子字符串返回开始的索引值,否则返回-1。

实例

以下实例展示了find()方法的实例:

str1 = "Runoob example....wow!!!"
str2 = "exam";

print (str1.find(str2))
print (str1.find(str2, 5))
print (str1.find(str2, 10))

以上实例输出结果如下:

7
7
-1
>>>info = 'abca'
>>> print(info.find('a'))      # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
0
>>> print(info.find('a', 1))   # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3
3
>>> print(info.find('3'))      # 查找不到返回-1
-1
>>>

index(str, beg=0, end=len(string))

描述

index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。

语法

index()方法语法:

str.index(str, beg=0, end=len(string))

参数

  • str – 指定检索的字符串
  • beg – 开始索引,默认为0。
  • end – 结束索引,默认为字符串的长度。

返回值

如果包含子字符串返回开始的索引值,否则抛出异常。

实例

以下实例展示了index()方法的实例:

#!/usr/bin/python3

str1 = "Runoob example....wow!!!"
str2 = "exam";

print (str1.index(str2))
print (str1.index(str2, 5))
print (str1.index(str2, 10))

以上实例输出结果如下(未发现的会出现异常信息):

7
7
Traceback (most recent call last):
 File "test.py", line 8, in <module>
   print (str1.index(str2, 10))
ValueError: substring not found

isalnum()

描述

Python isalpha() 方法检测字符串是否只由字母或文字组成。

语法

isalpha()方法语法:

str.isalpha()

参数

  • 无。

返回值

如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True,否则返回 False。

实例

以下实例展示了isalpha()方法的实例:

str = "runoob"
print (str.isalpha())

# 字母和中文文字
str = "runoob菜鸟教程"
print (str.isalpha())

str = "Runoob example....wow!!!"
print (str.isalpha())

以上实例输出结果如下:

True
True
False

isalpha()

描述

Python isalpha() 方法检测字符串是否只由字母或文字组成。

语法

isalpha()方法语法:

str.isalpha()

参数

  • 无。

返回值

如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True,否则返回 False。

实例

以下实例展示了isalpha()方法的实例:

str = "runoob"
print (str.isalpha())

# 字母和中文文字
str = "runoob菜鸟教程"
print (str.isalpha())

str = "Runoob example....wow!!!"
print (str.isalpha())

以上实例输出结果如下:

True
True
False

isdigit()

描述

Python isdigit() 方法检测字符串是否只由数字组成。

语法

isdigit()方法语法:

str.isdigit()

参数

  • 无。

返回值

如果字符串只包含数字则返回 True 否则返回 False。

实例

以下实例展示了isdigit()方法的实例:

str = "123456";
print (str.isdigit())

str = "Runoob example....wow!!!"
print (str.isdigit())

以上实例输出结果如下:

True
False

islower()

描述

islower() 方法检测字符串是否由小写字母组成。

语法

islower()方法语法:

str.islower()

参数

  • 无。

返回值

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

实例

以下实例展示了islower()方法的实例:

str = "RUNOOB example....wow!!!"
print (str.islower())

str = "runoob example....wow!!!"
print (str.islower())

以上实例输出结果如下:

False
True

isnumeric()

描述

isnumeric() 方法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字。

指数类似 ² 与分数类似 ½ 也属于数字。

# s = '½'
s = '\u00BD'

语法

isnumeric()方法语法:

str.isnumeric()

参数

  • 无。

返回值

如果字符串中只包含数字字符,则返回 True,否则返回 False

实例

以下实例展示了 isnumeric() 方法的实例:

str = "runoob2016"  
print (str.isnumeric())

str = "23443434"
print (str.isnumeric())

以上实例输出结果如下:

False
True

Unicode 数字:

#s = '²3455'
s = '\u00B23455'
print(s.isnumeric())
# s = '½'
s = '\u00BD'
print(s.isnumeric())

a = "\u0030" #unicode for 0
print(a.isnumeric())

b = "\u00B2" #unicode for ²
print(b.isnumeric())

c = "10km2"
print(c.isnumeric())

以上实例输出结果如下:

True
True
True
True
False

isspace()

描述

Python isspace() 方法检测字符串是否只由空白字符组成。

语法

isspace() 方法语法:

str.isspace()

参数

  • 无。

返回值

如果字符串中只包含空格,则返回 True,否则返回 False.

实例

以下实例展示了isspace()方法的实例:

str = "       " 
print (str.isspace())

str = "Runoob example....wow!!!"
print (str.isspace())

以上实例输出结果如下:

True
False

istitle()

描述

istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

语法

istitle()方法语法:

str.istitle()

参数

  • 无。

返回值

如果字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False.

实例

以下实例展示了istitle()方法的实例:

str = "This Is String Example...Wow!!!"
print (str.istitle())

str = "This is string example....wow!!!"
print (str.istitle())

以上实例输出结果如下:

True
False

isupper()

描述

isupper() 方法检测字符串中所有的字母是否都为大写。

语法

isupper()方法语法:

str.isupper()

参数

  • 无。

返回值

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

实例

以下实例展示了isupper()方法的实例:

#!/usr/bin/python3

str = "THIS IS STRING EXAMPLE....WOW!!!"
print (str.isupper())

str = "THIS is string example....wow!!!"
print (str.isupper())

以上实例输出结果如下:

True
False

join(seq)

描述

Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

语法

join()方法语法:

str.join(sequence)

参数

  • sequence – 要连接的元素序列。

返回值

返回通过指定字符连接序列中元素后生成的新字符串。

实例

以下实例展示了join()的使用方法:

s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))

以上实例输出结果如下:

r-u-n-o-o-b
runoob

len(string)

描述

Python len() 方法返回对象(字符、列表、元组等)长度或项目个数。

语法

len()方法语法:

len( s )

参数

  • s – 对象。

返回值

返回对象长度。

>>>str = "runoob"
>>> len(str)             # 字符串长度
6
>>> l = [1,2,3,4,5]
>>> len(l)               # 列表元素个数
5

ljust(width[, fillchar])

描述

ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法

ljust()方法语法:

str.ljust(width[, fillchar])

参数

  • width – 指定字符串长度。
  • fillchar – 填充字符,默认为空格。

返回值

返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

实例

以下实例展示了ljust()的使用方法:

#!/usr/bin/python3

str = "Runoob example....wow!!!"

print (str.ljust(50, '*'))

以上实例输出结果如下:

Runoob example....wow!!!**************************

lower()

描述

Python lower() 方法转换字符串中所有大写字符为小写。

语法

lower()方法语法:

str.lower()

参数

  • 无。

返回值

返回将字符串中所有大写字符转换为小写后生成的字符串。

实例

以下实例展示了lower()的使用方法:

#!/usr/bin/python3

str = "Runoob EXAMPLE....WOW!!!"

print( str.lower() )

以上实例输出结果如下:

runoob example....wow!!!

lstrip()

描述

lstrip() 方法用于截掉字符串左边的空格或指定字符。

语法

lstrip()方法语法:

str.lstrip([chars])

参数

  • chars --指定截取的字符。

返回值

返回截掉字符串左边的空格或指定字符后生成的新字符串。

实例

以下实例展示了lstrip()的使用方法:

str = "     this is string example....wow!!!     ";
print( str.lstrip() );
str = "88888888this is string example....wow!!!8888888";
print( str.lstrip('8') );

以上实例输出结果如下:

this is string example....wow!!!     
this is string example....wow!!!8888888

maketrans()

描述

maketrans() 方法用于创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

两个字符串的长度必须相同,为一一对应的关系。

**注:**Python3.4 已经没有 string.maketrans() 了,取而代之的是内建函数: bytearray.maketrans()、bytes.maketrans()、str.maketrans()

语法

maketrans()方法语法:

str.maketrans(intab, outtab)

参数

  • intab – 字符串中要替代的字符组成的字符串。
  • outtab – 相应的映射字符的字符串。

返回值

返回字符串转换后生成的新字符串。

实例

以下实例展示了使用maketrans() 方法将所有元音字母转换为指定的数字:

#!/usr/bin/python3

intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)

str = "this is string example....wow!!!"
print (str.translate(trantab))

以上实例输出结果如下:

th3s 3s str3ng 2x1mpl2....w4w!!!

max(str)

描述

max() 方法返回字符串中最大的字母。

语法

max()方法语法:

max(str)

参数

  • str – 字符串。

返回值

返回字符串中最大的字母。

实例

以下实例展示了max()函数的使用方法:

#!/usr/bin/python3

str = "runoob"
print ("最大字符: " + max(str))

以上实例输出结果如下:

最大字符: u

min(str)

描述

Python min() 方法返回字符串中最小的字母。

语法

min()方法语法:

min(str)

参数

  • str – 字符串。

返回值

返回字符串中最小的字母。

实例

以下实例展示了min()函数的使用方法:

str = "runoob";
print ("最小字符: " + min(str));

以上实例输出结果如下:

最小字符: b

replace(old, new[, max])

描述

replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

语法

replace()方法语法:

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

参数

  • old – 将被替换的子字符串。
  • new – 新字符串,用于替换old子字符串。
  • max – 可选字符串, 替换不超过 max 次

返回值

返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

实例

以下实例展示了replace()函数的使用方法:

str = "www.w3cschool.cc"
print ("菜鸟教程旧地址:", str)
print ("菜鸟教程新地址:", str.replace("w3cschool.cc", "runoob.com"))

str = "this is string example....wow!!!"
print (str.replace("is", "was", 3))

以上实例输出结果如下:

菜鸟教程旧地址: www.w3cschool.cc
菜鸟教程新地址: www.runoob.com
thwas was string example....wow!!!

rfind(str, beg=0, end=len(string))

描述

Python rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

语法

rfind()方法语法:

str.rfind(str, beg=0 end=len(string))

参数

  • str – 查找的字符串
  • beg – 开始查找的位置,默认为0
  • end – 结束查找位置,默认为字符串的长度。

返回值

返回字符串最后一次出现的位置,如果没有匹配项则返回-1。

实例

以下实例展示了rfind()函数的使用方法:

str1 = "this is really a string example....wow!!!"
str2 = "is"

print (str1.rfind(str2))

print (str1.rfind(str2, 0, 10))
print (str1.rfind(str2, 10, 0))

print (str1.find(str2))
print (str1.find(str2, 0, 10))
print (str1.find(str2, 10, 0))

以上实例输出结果如下:

5
5
-1
2
2
-1

rindex(str, beg=0, end=len(string))

描述

rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。

语法

rindex()方法语法:

str.rindex(str, beg=0 end=len(string))

参数

  • str – 查找的字符串
  • beg – 开始查找的位置,默认为0
  • end – 结束查找位置,默认为字符串的长度。

返回值

返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常。

实例

以下实例展示了rindex()函数的使用方法:

#!/usr/bin/python3
str1 = "this is really a string example....wow!!!"
str2 = "is"

print (str1.rindex(str2))
print (str1.rindex(str2,10))

以上实例输出结果如下:

5
Traceback (most recent call last):
 File "test.py", line 6, in <module>
   print (str1.rindex(str2,10))
ValueError: substring not found

rjust(width, [, fillchar])

描述

rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

语法

rjust()方法语法:

str.rjust(width[, fillchar])

参数

  • width – 指定填充指定字符后中字符串的总长度.
  • fillchar – 填充的字符,默认为空格。

返回值

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串

实例

以下实例展示了rjust()函数的使用方法:

#!/usr/bin/python3

str = "this is string example....wow!!!"
print (str.rjust(50, '*'))

以上实例输出结果如下:

******************this is string example....wow!!!

rstrip()

描述

rstrip() 删除 string 字符串末尾的指定字符(默认为空格).

语法

rstrip()方法语法:

str.rstrip([chars])

参数

  • chars – 指定删除的字符(默认为空格)

返回值

返回删除 string 字符串末尾的指定字符后生成的新字符串。

实例

以下实例展示了rstrip()函数的使用方法:

#!/usr/bin/python3

str = "     this is string example....wow!!!     "
print (str.rstrip())
str = "*****this is string example....wow!!!*****"
print (str.rstrip('*'))

以上实例输出结果如下:

    this is string example....wow!!!
*****this is string example....wow!!!

split(str="", num=string.count(str))

描述

split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。

语法

split() 方法语法:

str.split(str="", num=string.count(str))

参数

  • str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num – 分割次数。默认为 -1, 即分隔所有。

返回值

返回分割后的字符串列表。

实例

以下实例展示了 split() 函数的使用方法:

str = "this is string example....wow!!!"
print (str.split( ))       # 以空格为分隔符
print (str.split('i',1))   # 以 i 为分隔符
print (str.split('w'))     # 以 w 为分隔符

以上实例输出结果如下:

['this', 'is', 'string', 'example....wow!!!']
['th', 's is string example....wow!!!']
['this is string example....', 'o', '!!!']

以下实例以 # 号为分隔符,指定第二个参数为 1,返回两个参数列表。

txt = "Google#Runoob#Taobao#Facebook"

# 第二个参数为 1,返回两个参数列表
x = txt.split("#", 1)

print(x)

以上实例输出结果如下:

['Google', 'Runoob#Taobao#Facebook']

splitlines([keepends])

描述

Python splitlines() 按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

语法

splitlines()方法语法:

str.splitlines([keepends])

参数

  • keepends – 在输出结果里是否去掉换行符(’\r’, ‘\r\n’, \n’),默认为 False,不包含换行符,如果为 True,则保留换行符。

返回值

返回一个包含各行作为元素的列表。

实例

以下实例展示了splitlines()函数的使用方法:

>>> 'ab c\n\nde fg\rkl\r\n'.splitlines()
['ab c', '', 'de fg', 'kl']
>>> 'ab c\n\nde fg\rkl\r\n'.splitlines(True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']
>>> 

startswith(substr, beg=0, end=len(string))

描述

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

语法

startswith()方法语法:

str.startswith(substr, beg=0,end=len(string));

参数

  • str – 检测的字符串。
  • substr – 指定的子字符串。
  • strbeg – 可选参数用于设置字符串检测的起始位置。
  • strend – 可选参数用于设置字符串检测的结束位置。

返回值

如果检测到字符串则返回True,否则返回False。

实例

以下实例展示了startswith()函数的使用方法:

str = "this is string example....wow!!!"
print (str.startswith( 'this' ))   # 字符串是否以 this 开头
print (str.startswith( 'string', 8 ))  # 从第九个字符开始的字符串是否以 string 开头
print (str.startswith( 'this', 2, 4 )) # 从第2个字符开始到第四个字符结束的字符串是否以 this 开头

以上实例输出结果如下:

True
True
False

strip([chars])

描述

Python strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。

**注意:**该方法只能删除开头或是结尾的字符,不能删除中间部分的字符。

语法

strip()方法语法:

str.strip([chars]);

参数

  • chars – 移除字符串头尾指定的字符序列。

返回值

返回移除字符串头尾指定的字符序列生成的新字符串。

实例

以下实例展示了 strip() 函数的使用方法:

str = "*****this is **string** example....wow!!!*****"
print (str.strip( '*' ))  # 指定字符串 *

以上实例输出结果如下:

this is **string** example....wow!!!

从结果上看,可以注意到中间部分的字符并未删除。

以上下例演示了只要头尾包含有指定字符序列中的字符就删除:

str = "123abcrunoob321"
print (str.strip( '12' ))  # 字符序列为 12

以上实例输出结果如下:

3abcrunoob3

swapcase()

描述

swapcase() 方法用于对字符串的大小写字母进行转换。

语法

swapcase()方法语法:

str.swapcase();

参数

  • NA。

返回值

返回大小写字母转换后生成的新字符串。

实例

以下实例展示了swapcase()函数的使用方法:

#!/usr/bin/python3

str = "this is string example....wow!!!"
print (str.swapcase())

str = "This Is String Example....WOW!!!"
print (str.swapcase())

以上实例输出结果如下:

THIS IS STRING EXAMPLE....WOW!!!
tHIS iS sTRING eXAMPLE....wow!!!

title()

描述

Python title() 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写(见 istitle())。

语法

title()方法语法:

str.title();

参数

  • NA。

返回值

返回"标题化"的字符串,就是说所有单词的首字母都转化为大写。

实例

以下实例展示了 title()函数的使用方法:

str = "this is string example from runoob....wow!!!"
print (str.title())

以上实例输出结果如下:

This Is String Example From Runoob....Wow!!!

请注意,非字母后的第一个字母将转换为大写字母:

txt = "hello b2b2b2 and 3g3g3g"
x = txt.title()
print(x)

输出结果为:

Hello B2B2B2 And 3G3G3G

translate(table, deletechars="")

描述

translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符,要过滤掉的字符放到 deletechars 参数中。

语法

translate()方法语法:

str.translate(table)
bytes.translate(table[, delete])    
bytearray.translate(table[, delete]) 

参数

  • table – 翻译表,翻译表是通过 maketrans() 方法转换而来。
  • deletechars – 字符串中要过滤的字符列表。

返回值

返回翻译后的字符串,若给出了 delete 参数,则将原来的bytes中的属于delete的字符删除,剩下的字符要按照table中给出的映射来进行映射 。

实例

以下实例展示了 translate() 函数的使用方法:

intab = "aeiou"
outtab = "12345"
trantab = str.maketrans(intab, outtab)   # 制作翻译表

str = "this is string example....wow!!!"
print (str.translate(trantab))

以上实例输出结果如下:

th3s 3s str3ng 2x1mpl2....w4w!!!

以下实例演示如何过滤掉的字符 o:

# 制作翻译表
bytes_tabtrans = bytes.maketrans(b'abcdefghijklmnopqrstuvwxyz', b'ABCDEFGHIJKLMNOPQRSTUVWXYZ')

# 转换为大写,并删除字母o
print(b'runoob'.translate(bytes_tabtrans, b'o'))

以上实例输出结果:

b'RUNB'

upper()

描述

Python upper() 方法将字符串中的小写字母转为大写字母。

语法

upper()方法语法:

str.upper()

参数

  • NA。

返回值

返回小写字母转为大写字母的字符串。

实例

以下实例展示了 upper()函数的使用方法:

#!/usr/bin/python3

str = "this is string example from runoob....wow!!!";

print ("str.upper() : ", str.upper())

以上实例输出结果如下:

str.upper() :  THIS IS STRING EXAMPLE FROM RUNOOB....WOW!!!

zfill(width)

描述

Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。

语法

zfill()方法语法:

str.zfill(width)

参数

  • width – 指定字符串的长度。原字符串右对齐,前面填充0。

返回值

返回指定长度的字符串。

实例

以下实例展示了 zfill()函数的使用方法:

#!/usr/bin/python3

str = "this is string example from runoob....wow!!!"
print ("str.zfill : ",str.zfill(40))
print ("str.zfill : ",str.zfill(50))

以上实例输出结果如下:

str.zfill :  this is string example from runoob....wow!!!
str.zfill :  000000this is string example from runoob....wow!!!

isdecimal()

描述

isdecimal() 方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。

**注意:**定义一个十进制字符串,只需要在字符串前添加 ‘u’ 前缀即可。

语法

isdecimal()方法语法:

str.isdecimal()

参数

返回值

如果字符串是否只包含十进制字符返回True,否则返回False。

实例

以下实例展示了 isdecimal()函数的使用方法:

#!/usr/bin/python3

str = "runoob2016"
print (str.isdecimal())

str = "23443434"
print (str.isdecimal())

以上实例输出结果如下:

False
True
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值