Python字符串的表示方法

字符串的表示方法

基本表示方法

字符串有多种形式,可以使用单引号('...'),双引号("...")都可以获得同样的结果。反斜杠 \ 可以用来转义:

print('"Isn\'t," they said.')

如果你不希望前置了 \ 的字符转义成特殊字符,可以使用 原始字符串 方式,在引号前添加 r 即可:

print(r'C:\some\name')

字符串字面值可以跨行连续输入。一种方式是用三重引号:"""...""" 或 '''...'''。字符串中的回车换行会自动包含到字符串中,如果不想包含,在行尾添加一个 \ 即可。如下例:

print("""\

Usage: thingy [OPTIONS]

     -h                        Display this usage message

     -H hostname               Hostname to connect to

""")

将产生如下输出(注意最开始的换行没有包括进来):

字符串可以用 + 进行连接(粘到一起),也可以用 * 进行重复:

print( 3 * 'un' + 'ium')

字符串索引

字符串是可以被 索引 (下标访问)的,第一个字符索引是 0。单个字符并没有特殊的类型,只是一个长度为一的字符串:

word = 'Python'
print(word[0])
print(word[5])

索引也可以用负数,这种会从右边开始数:

print(word[-5])
print(word[-4])
print(word[-3])

注意 -0 和 0 是一样的,所以负数索引从 -1 开始。

字符串的切片表示

除了索引,字符串还支持切片。索引可以得到单个字符,而 切片 可以获取子字符串:

print(word[0:2])
print(word[2:5])

注意切片的开始总是被包括在结果中,而结束不被包括(半开半闭)。这使得 s[:i] + s[i:] 总是等于 s

print(word[:2]+word[2:])
print(word[:3]+word[3:])

切片的索引有默认值;省略开始索引时默认为0,省略结束索引时默认为到字符串的结束:

print(word[:2])
print(word[3:])
print(word[-2:])

也可以这么理解切片:将索引视作指向字符之间,第一个字符的左侧标为0,最后一个字符的右侧标为 n ,其中 n 是字符串长度。例如:

+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

第一行数标注了字符串 0...6 的索引的位置,第二行标注了对应的负的索引。那么从 i 到 j 的切片就包括了标有 i 和 j 的位置之间的所有字符。

对于使用非负索引的切片,如果索引不越界,那么得到的切片长度就是起止索引之差。例如, word[1:3] 的长度为2。

试图使用过大的索引会产生一个错误:

但是,切片中的越界索引会被自动处理:

print(word[4:52])

print(word[45:])

字符串不能被修改,是 immutable 的。

向字符串的某个索引位置赋值会产生一个错误:

word[0]='J'

word[2:]='py'

 
如果需要一个不同的字符串,应当新建一个:
print('J'+word[2:])
 
print(word[2:]+'py')
 

 

内建函数 len() 返回一个字符串的长度:

s='jfkhferhgergerugsjfbjha'
print(len(s))

 
 
 
 
 
 
 
 
 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值