原文链接:http://www.juzicode.com/archives/5699
在Python中可以用下面这种方式定义一个空字符串:
a = ''
如果在引号中多输入一个空格的形式定义一个字符串:
b = ' '
这时a和b看起来好像都是“空”的,a和b还是同一个东西吗?它们二者是相等的吗?
#VX公众号: 桔子code / juzicode.com
a = ''
b = ' '
print(a==b)
运行结果:
False
从运行结果看,二者并不相等。
另外我们也可以通过计算字符串的长度来看看二者是否相等:
a = ''
b = ' '
print('len(a):',len(a))
print('len(b):',len(b))
运行结果:
len(a): 0
len(b): 1
从运行结果看二者长度也并不相等,空字符串长度为0,而包含一个空格的字符串长度为1。打个比方空字符串就好像抽成真空的一个瓶子,里面什么都没有,而包含空格的字符串就好像一个看起来的空瓶子,但是里面有空气存在。
我们知道可以用关键字in判断子串是否在一个字符串中,下面这个例子判断“c”和“x”是否在“juzicode.com”中:
a = 'juzicode.com'
print('c' in a)
print('x' in a)
得到的结果分别为True和False:
True
False
空串的一个特性是如果用in判断,它会存在于任何一个字符串中,包括空串本身:
a = 'juzicode.com'
print('' in a)
a = 'VX:桔子code'
print('' in a)
a = 'orange'
print('' in a)
a = 'are you kiding'
print('' in a)
a = ''
print('' in a)
运行结果:
True
True
True
True
True
另外我们可以用count()计算字符串中包含某个子串的数量,比如要计算“juzicode.com”中”c”和”x”出现的次数:
a = 'juzicode.com'
t = a.count('c')
print('times of c:',t)
t = a.count('x')
print('times of x:',t)
运行结果:
times of c: 2
times of x: 0
既然空串存在于任何一个字符串中,我们可以测试下一个字符串中有多少个空字符串:
#VX公众号: 桔子code / juzicode.com
l = 'juzicode.com','VX:桔子code','orange','are you kiding',''
for a in l:
print(a)
t = a.count('')
print('count of "":',t)
print('len(a):',len(a))
运行结果:
juzicode.com
count of "": 13
len(a): 12
VX:桔子code
count of "": 10
len(a): 9
orange
count of "": 7
len(a): 6
are you kiding
count of "": 15
len(a): 14
count of "": 1
len(a): 0
从测试的结果看,在一个字符串中空串的长度为字符串长度加1。
好了,今天的水文到这里就结束了,通过这些测试例程,我们了解了下空串的特性:空串是不包含任何字符的字符串,其长度为0;如果用in判断,空串存在于任何字符串中包括空串本身;一个字符串包含了字符串长度+1个空串。
原文链接:http://www.juzicode.com/archives/5699