做煤的网站app/seo课程在哪培训好
python字符串系列之二:
1. 字符串切片:
在上边讲到了字符串的索引,有了索引还能干什么,就有一个比较厉害的操作,那就是切片: 切片其实就是从字符串里根据索引取出部分字符或者说一个子串。
切片格式: str1[m:n:k] m和n是索引,支持反向索引;m会包括在内,n不包括(有头无尾);k是步长,即间隔几个字符取一个
实例如下:
str1 = "asdfgh"
print str1[0] # a
print str1[0:3] # asd 不包括3 有头无尾,下方一样
print str1[0:] # asdfgh
print str1[-3:-1] # fg 这里就不包括-1
print str1[:-1] # asdfg 不包括-1
print str1[0:4:2] # ad 有头无尾,步长为2。第一个a,间隔2再取一个d
print str1[-6:-1:3] # af 有头无尾,步长为3
2. 转义
字符串转义。转义符在很多语言中都有,基本上也都是通用的。下面列举一部分
转义字符 | 描述 |
---|---|
\ (在行尾时) | 表示本行未结束。下一行内容也属于本行 |
\’ | 单引号 |
\” | 双引号 |
\a | 响铃 |
\b | 退格(Backspace) |
\n | 换行 |
\r | 回车 |
\f | 换页 |
\000 | 空 |
实例
# \ 转换成其本来的含义 这里单引号本来的含义就是一个字符,只是python里有特殊含义
print 'what's your name?' # 会报错
print 'what\'s your name?' # 输出 what's your name 这里\'转义
3. 字符串操作符
-
+:连接符。str1 + str2 。将字符串str1和str2连接起来。强连接,注意要手动类型转换,int + str会报错
-
*:复制。 str1 * n。将字符串str1复制n次
-
in:判断是否为子串。 str1 in str2 。判断str1是否为str2的子串,即str1是否存在于str2中。
str1 = "asd" str2 = "qwe" num1 = 12 print str1 + str2 # 输出asdqwe # print str1 + num1 # 报错。一个字符串、一个数值。强行连接会报错 print str1 * 2 # 输出asdasd 将字符串str1复制两次 print 'as' in str1 # 输出True。字符串'as'是字符串str1即'asd'的子串
4. 常用处理函数
-
len(str1):返回字符串str1的长度
-
str(x):返回任意类型x对应的字符串。
-
repr(x):将传入参数x变成字符串。就是在x两侧加上双引号。和eval相反
-
eval(x):将x两侧的双引号去除。和repr相反
-
chr(x):将ASCII码转换成字符串返回。 传入参数为ASCII码
-
ord(x):将字符串转换成ASCII码返回。仅接收长度为1的字符串参数
# coding=utf-8 str1 = "asdfgh" num = 121 print len(str1) # 输出str1的长度num = str(num) print num, type(num) # 输出 121 <type 'str'> 此时121是一个字符串,实际是"121"num1 = repr(122) print num1, type(num1) # 输出 122 <type 'str'> 加上了引号,变成字符串 print 'asd' # 输出 asd print repr('asd') # 输出 'asd' 注意和上边的区别print num1, type(num1) # 输出 122 <type 'str'> 加上了引号,变成字符串 num1 = eval(num1) print num1, type(num1) # 输出 122 <type 'int'> eval去除了引号print ord('A') # 输出 65 。即大写字母A对应的ASCII码值 print chr(65) # 输出A。即ASCII码65对应的值