赞
踩
str1 = '人生苦短,我用Python!'
length1 = len(str1)
print("length1: ", length1)
length1: 14
从上面的结果中可以看出,在默认的情况下,通过len()函数计算字符串的长度时,不区分英文、数字和汉字,所有字符都认为是一个。
在实际开发时,有时需要获取字符串实际所占的字节数,即如果采用UTF-8编码,汉字占3个字节,采用GBK或者GB2312时,汉字占2个字节。这时,可以通过使用encode()方法进行编码后再进行获取。例如,如果要获取采用UTF-8编码的字符串的长度,可以使用下面的代码:
str2 = '人生苦短,我用Python!'
length2 = len(str2.encode())
print("length2: ", length2)
length2: 28
如果要获取采用GBK编码的字符串的长度,可以使用下面的代码:
str3 = '人生苦短,我用Python!'
length3 = len(str3.encode('gbk'))
print("length3: ", length3)
length3: 21
str4 = '人生苦短,我用Python!'
try:
substr = str4[15]
except IndexError:
print('指定的索引不存在!')
指定的索引不存在!
str1 = '明 日 学 院 官 网 >>> www.mingrisoft.com'
print('原字符串:', str1)
list1 = str1.split()
list2 = str1.split('>>>')
list3 = str1.split('.')
list4 = str1.split(' ', 4)
print(str(list1) + '\n' + str(list2) + '\n' + str(list3) + '\n' + str(list4))
list5 = str1.split('>')
print(str(list5))
原字符串: 明 日 学 院 官 网 >>> www.mingrisoft.com
['明', '日', '学', '院', '官', '网', '>>>', 'www.mingrisoft.com']
['明 日 学 院 官 网 ', ' www.mingrisoft.com']
['明 日 学 院 官 网 >>> www', 'mingrisoft', 'com']
['明', '日', '学', '院', '官 网 >>> www.mingrisoft.com']
['明 日 学 院 官 网 ', '', '', ' www.mingrisoft.com']
1.count()方法
str.count(sub[, start[, end]])
str1 = '@明日科技 @雷军 @马斯克'
print('字符串“', str1, '”中包括:', str1.count('@'), '个 @ 符号')
字符串“ @明日科技 @雷军 @马斯克 ”中包括: 3 个 @ 符号
2.find()方法
str.find(sub[, start[, end]])
str1 = '@明日科技 @雷军 @马斯克'
print(str1.find('@'))
print(str1.rfind('@'))
0
10
3.index()方法
str.index(sub[, start[, end]])
str1 = '@明日科技 @雷军 @马斯克'
print(str1.index('@'))
print(str1.rindex('@'))
print(str1.index('*')) # 抛出异常
0
10
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-22-d037fee938f0> in <module>()
2 print(str1.index('@'))
3 print(str1.rindex('@'))
----> 4 print(str1.index('*'))
ValueError: substring not found
4.startswith()方法
str.startswith(prefix[, start[, end]])
str1 = '@明日科技 @雷军 @马斯克'
print(str1.startswith('@'))
print(str1.startswith('明'))
True
False
5.endswith()方法
str.endswith(suffix[, start[, end]])
str1 = 'http://www.mingrisoft.com'
print(str1.endswith('.com'))
True
1.lower()方法
str.lower()
str1 = 'WWW.Mingrisoft.com'
print("原字符串:", str1)
print("新字符串:", str1.lower())
原字符串: WWW.Mingrisoft.com
新字符串: www.mingrisoft.com
2.upper()方法
str.upper()
str1 = 'WWW.MingriSoft.com'
print("Original String: ", str1)
print("New String: ", str1.upper())
Original String: WWW.MingriSoft.com
New String: WWW.MINGRISOFT.COM
1.strip()方法
str.strip([chars])
str1 = 'http://www.mingrisoft.com \t\n\r'
print('Original String str1: '+ str1 + '.')
Original String str1: http://www.mingrisoft.com
.
print('New String: ' + str1.strip() + '.')
New String: http://www.mingrisoft.com.
str2 = '@明日科技.@.'
print('Original String str2: ' + str2 + '.')
Original String str2: @明日科技.@…
print('New String: ' + str2.strip('@.') + '.')
New String: 明日科技.
2.lstrip()方法
str.lstrip([chars])
3.rstrip()方法
str.rstrip([chars])
1.使用 “%” 操作符
‘%[-][+][0][m][.n]格式化字符’%exp
参数说明:
′
−
′
:
'-':
′−′: 可选参数,用于指定左对齐,正数前方无符号,负数前面加负号。
′
+
′
:
'+':
′+′: 可选参数,用于指定右对齐,正数前方加正号,负数前面加负号。
′
0
′
:
'0':
′0′: 可选参数,表示右对齐,正数前面元符号,负数前面加负号,用0填充空白处(一般与m参数一起使用)。
′
m
′
:
'm':
′m′: 可选参数,表示占有宽度。
′
.
n
′
:
'.n':
′.n′: 可选参数,表示小数点后保留的位数。
格式化字符:用于指定类型,其值如下表所示:
格式字符 | 说明 | 格式字符 | 说明 |
---|---|---|---|
%s | 字符串(采用str()显示) | %r | 字符串(采用repr()显示) |
%c | 单个字符 | %o | 八进制整数 |
%d 或 %i | 十进制整数 | %e | 指数(基底写为e) |
%x | 十六进制整数 | %E | 指数(基底写为E) |
%f 或 %F | 浮点数 | %% | 字符% |
template = '编号:%09d \t公司名称: %s \t官网: http://www.%s.com'
context1 = (7, '百度', 'baidu')
context2 = (8, '明日学院', 'mingrisoft')
print(template%context1)
print(template%context2)
编号:000000007 公司名称: 百度 官网: http://www.baidu.com
编号:000000008 公司名称: 明日学院 官网: http://www.mingrisoft.com
2.使用字符串对象的 format() 方法
str.format(args)
template = '编号: {:0>9s} \t公司名称: {:s} \t官网: http://www.{:s}.com'
context1 = template.format('3', '百度', 'baidu')
context2 = template.format('4', '明日科技', 'mingrisoft')
print(context1)
print(context2)
编号: 000000003 公司名称: 百度 官网: http://www.baidu.com
编号: 000000004 公司名称: 明日科技 官网: http://www.mingrisoft.com
7.3.1 匹配字符串
re.match(pattern ,string, [flags])
参数说明:
pattern:表示模式字符串,由要匹配的正则表达式转换而来。
string:表示要匹配的字符串。
flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写。常用的标志如下表所示:
标志 | 说明 |
---|---|
A 或 ASCII | 对于\w、\W、\b、\B、\d、\D、\s 和 \S 只进行 ASCII 匹配 |
I 或 IGNORECASE | 执行不区分字母大小写的匹配 |
M 或 MULTILINE | 将 ^ 和 $ 用于包括整个字符串的开始和结尾的每一行 |
S 或 DOTALL | 使用(.)字符匹配所有字符,包括换行符 |
X 或 VERBOSE | 忽略模式字符串中未转义的空格和注释 |
import re
pattern = r'mr_\w+'
string = 'MR_SHOP mr_shop'
match = re.match(pattern, string, re.I)
print(match)
string = '项目名称MR_SHOP mr_shop'
match = re.match(pattern , string, re.I)
print(match)
<_sre.SRE_Match object; span=(0, 7), match=‘MR_SHOP’>
None
import re
pattern = r'mr_\w+'
string = 'MR_SHOP mr_shop'
match = re.match(pattern, string, re.I)
print("Start: ", match.start())
print("End: ", match.end())
print("Location: ", match.span())
print("String: ", match.string)
print("Data: ", match.group())
Start: 0
End: 7
Location: (0, 7)
String: MR_SHOP mr_shop
Data: MR_SHOP
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。