我的课本学习笔记
1.如采用UTF-8编码,汉字占3个字节;采用GBK或GB2312编码,汉字占2个字节。
2.字符串分割
str.split(sep, maxsplit)
str:要分割的字符串
sep:指定分割符,默认为None,即所有的空字符(包括空格,换行‘\t’,制表符‘\t’等)
maxsplit:指定分割次数,如果不指定sep不可指定maxsplit
str1 = "今 天 天 气 不 错 >>> www.goodday.com"
print("原字符串:", str1)
substr1 = str1.split()
substr2 = str1.split(">>>")
substr3 = str1.split(".")
substr4 = str1.split(" ", 4)
print(str(substr1) + '\n' + str(substr2) + '\n' + str(substr3) + '\n' + str(substr4))
substr5 = str1.split('>')
print(substr5)
输出:
原字符串: 今 天 天 气 不 错 >>> www.goodday.com
['今', '天', '天', '气', '不', '错', '>>>', 'www.goodday.com']
['今 天 天 气 不 错 ', ' www.goodday.com']
['今 天 天 气 不 错 >>> www', 'goodday', 'com']
['今', '天', '天', '气', '不 错 >>> www.goodday.com']
['今 天 天 气 不 错 ', '', '', ' www.goodday.com']
3.字符串合并
strnew = string.join(iterable)
strnew:合并后新的字符串
string:字符串类型,用于指定合并时的分隔符
iterable:可迭代对象
list_friend = ['马云', '马化腾', '雷军']
str_new = '@'.join(list_friend)
at = '@'+str_new
print("您@的三位好友是:", at)
输出:
您@的三位好友是: @马云@马化腾@雷军
4.字符串检索 使用find()方法,如果不存在,返回-1;而使用index()检索时,不存在会抛出异常。
5.格式化字符串
(1)使用 % 操作符
%s 字符串(采用str()显示)
%c 单个字符
%f或%F 浮点数
%d 或者 %i 十进制整数
template = '编号: %09d\t公司名称: %s \t官网: http://www.%s.com '
context1 = (7, '百度', 'baidu')
context2 = (8, '新浪', 'sina')
print(template % context1)
print(template % context2)
输出:
编号: 000000007 公司名称: 百度 官网: http://www.baidu.com
编号: 000000008 公司名称: 新浪 官网: http://www.sina.com
(2)使用format()方法
str.format(args)
str:用于指定字符串的显示样式,即模板
args:用于指定要转换的项,如果有多项,用都好进行分隔
template = '编号: {:0>9s}\t公司名称: {:s} \t官网: http://www.{:s}.com '
context1 = template.format('7', '百度', 'baidu')
context2 = template.format('8', '新浪', 'sina')
print(context1)
print(context2)
输出:
编号: 000000007 公司名称: 百度 官网: http://www.baidu.com
编号: 000000008 公司名称: 新浪 官网: http://www.sina.com
6.正则表达式
(1)用match()方法进行匹配
re.match(pattern, string, [flags])
pattern:表示模式字符串,由要匹配的正则表达式转换而来
string:表示要匹配的字符串
flags:可选参数,表示标志位,用于控制匹配方式,如是否区分字母大小写re.I等
从字符串开始处进行匹配,如果起始位置匹配成功,则返回match对象,否则返回None。
(2)search()方法
re.search(pattern, string, [flags])
用于在整个字符串中搜索第一个匹配的值,如果普配成功,则返回match对象,否则返回None
(3)findall()方法
re.findall(pattern, string, [flags])
用于在整个字符串中搜索所有符合正则表达式的字符串,并以列表的形式返回。如果匹配成功,则返回包含匹配结构的列表,否则返回空列表。
import re
pattern = r'([1-9]{1,3}(\.[0-9]{1,3}){3})'
str1 = '127.0.0.1 192.168.1.66'
match = re.findall(pattern, str1)
for item in match:
print(item[0])
输出:
127.0.0.1
192.168.1.66