字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
创建字符串很简单,只要为变量分配一个值即可。例如:
var1 = 'Hello World!'
var2 = "hello westos"
访问字符串中的值
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python 访问子字符串,可以使用方括号来截取字符串,如下实例:
var1 = 'Hello World!'
var2 = "Python westos"
var3 = '12345678'
print("var1[0]: ", var1[0])
print("var2[1:5]: ", var2[1:5])
print("var3每隔2个字符输出一个字符:",var3[0:7:2])
print("var3每隔2个字符输出一个字符:",var3[::2])
print("var3倒序输出:",var3[::-1])
字符串连接
var1 = 'Hello World!'
print("输出 : ", var1[:6] + 'westos!') ##字符串拼接
print(var1*2) ##重复输出字符串
转义字符
在需要在字符中使用特殊字符时,python 用反斜杠 \ 转义字符。如下表:
转义字符 | 描述 |
---|---|
\ (在行尾时) | 续行符 |
\ \ | 反斜杠符号 |
\ ’ | 单引号 |
\ " | 双引号 |
\ n | 换行 |
\ v | 纵向制表符 |
\ t | 横向制表符 |
\ r | 回车 |
\ f | 换页 |
字符串运算符
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | >>>a + b |
* | 重复输出字符串 | >>>a * 2 |
[] | 通过索引获取字符串中字符 | >>>a[1] |
[ : ] | 截取字符串中的一部分 | >>>a[1:4] |
in | 成员运算符 - 如果字符串中包含给定的字符返回 True | >>>“H” in a |
not in | 成员运算符 - 如果字符串中不包含给定的字符返回 True | >>>“M” not in a |
r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 | >>>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 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。如下实例:
print ('My name is %s and weight is %d kg!' % ('Zara', 21))
输出结果:
My name is Zara and weight is 21 kg!
python 字符串格式化符号:
符号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
%e | 用科学计数法格式化浮点数 |
%E | 作用同%e,用科学计数法格式化浮点数 |
%g | %f和%e的简写 |
%G | %F 和 %E 的简写 |
%p | 用十六进制数格式化变量的地址 |
三引号
三引号可以将复杂的字符串进行赋值。
Python 三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。
hi ='''kk "hello"
world
'''
print(hi)
输出结果:
kk "hello"
world
字符串内建函数
方法 | 描述 |
---|---|
string.isdigit() | 如果 string 只包含数字则返回 True 否则返回 False |
string.islower() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False |
string.istitle() | 如果 string 是标题化的(字符串中所有的单词拼写首字母是否为大写,且其他字母为小写则返回 True,否则返回 False |
string.isupper() | 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False |
string.lower() | 转换 string 中所有大写字符为小写 |
string.upper() | 转换 string 中所有小写字符为大写 |
string.isalnum() | 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False |
string.isalpha() | 如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False |
string.endswith() | 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置。 |
string.lstrip() | 截掉 string 左边的空格 |
string.rstrip() | 删除 string 字符串末尾的空格 |
string.strip([obj]) | 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列 |
string.title() | 返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写 |
string.replace() | replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次;str.replace(old, new[, max]) |
string.find() | find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1;str.find(str, beg=0, end=len(string)) |
string.center() | center() 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格;str.center(width[, fillchar]) |
string.count() | count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置;str.count(sub, start= 0,end=len(string)) |
实例:
print('123'.isdigit())
print('12ad'.isdigit())
print('hello'.istitle())
print('Hello'.istitle())
print('123Ad'.islower())
print('123ad'.islower())
print('123Ad'.isupper())
print('123AD'.isupper())
print('123Hello'.upper())
print('123Hello'.lower())
print('123abc'.isalnum())
print('123abc'.isalpha())
print('abc'.isalpha())
print('hello.log'.endswith('.log'))
print('http://192.168.1.19'.startswith('ftp'))
print(' hello '.lstrip())
print(' hello '.rstrip())
print('12hello'.strip('12'))
print('12hello12'.strip('12'))
print('hello'.title())
运行结果:
True
False
False
True
False
True
False
True
123HELLO
123hello
True
False
True
True
False
hello
hello
hello
hello
Hello
实例:
#replace()方法
str = "this is string example....wow!!! this is really string"
print(str.replace("is", "was"))
print(str.replace("is", "was", 3)) ##替换不超过三次
#find()方法
str1 = "this is string example....wow!!!"
str2 = "exam"
print(str1.find(str2))
print(str1.find(str2, 10))
print(str1.find(str2, 40))
#center()方法
str3 = "hello"
print(str3.center(20, '*'))
print(str3.center(20))
#count()方法
str4 = "this is string example....wow!!!"
sub = "i"
print("str4.count(sub, 4, 40) : ", str4.count(sub, 4, 40))
sub1 = "wow"
print("str4.count(sub1) : ", str4.count(sub1))
运行结果:
thwas was string example....wow!!! thwas was really string
thwas was string example....wow!!! thwas is really string
15
15
-1
*******hello********
hello
str4.count(sub, 4, 40) : 2
str4.count(sub1) : 1