一,前言
现在开始正式进入Python之路,书籍使用《Python语言及其应用》2016年1月版,2018年1月印刷。
之前刷了网易精品课的Python,大学有一定的编程基础。
昨天学习了第二章的Python基本元素,也编写了99乘法表。
二,学习点
2.1 切片 [Start:end:step],中间分隔符为“:”
2.2 分割split,格式:处理字符串.split(','),分隔符‘,’也可是使用其他分隔符,如果没有分隔符,则默认使用换行符‘\n’, ' ' , '\t'。
2.3 合并join ,‘,’.join(处理字符串)
2.4 字符串常用命令 len(),startswith(),endswith(),find(),count(),isalnum()
2.5 删除字符 字符串.strip('.')注意,strip只会剔除字符串首尾的指定字符,不能剔除字符串中间的字符
import re
a = ".....This is a new day\t ,Happy new time\n,,,,,....."
b = a.strip('.Th')
print('First translate:\n',b)
b = b.replace('is','IS')
print('First translate:\n',b)
print(re.sub('[\r\n\t]', ' GG', b))
First translate:
is is a new day ,Happy new time
,,,,,
First translate:
IS IS a new day ,Happy new time
,,,,,
IS IS a new day GG ,Happy new time GG,,,,,
这三个函数放在一起可以有助于理解:
strip()只删除字符串首尾字符,且能对连续字符删除
replace能代替某特定字符
re.sub能代替复杂的字符串
re.sub的各个参数的详细解释
re.sub共有五个参数。
re.sub(pattern, repl, string, count=0, flags=0)
其中三个必选参数:pattern, repl, string
两个可选参数:count, flags
第一个参数:pattern
pattern,表示正则中的模式字符串,这个没太多要解释的。
需要知道的是:
反斜杠加数字(\N),则对应着匹配的组(matched group)比如\6,表示匹配前面pattern中的第6个group
意味着,pattern中,前面肯定是存在对应的,第6个group,然后你后面也才能去引用
比如,想要处理:
hello crifan, nihao crifan
- 1
且此处的,前后的crifan,肯定是一样的。
而想要把整个这样的字符串,换成crifanli
则就可以这样的re.sub实现替换:
inputStr = "hello crifan, nihao crifan";
replacedStr = re.sub(r"hello (\w+), nihao \1", "crifanli", inputStr);
- 1
- 2
第二个参数:repl
repl,就是replacement,被替换,的字符串的意思。
repl可以是字符串,也可以是函数。
repl是字符串
如果repl是字符串的话,其中的任何反斜杠转义字符,都会被处理的。
即:
\n:会被处理为对应的换行符;\r:会被处理为回车符;
其他不能识别的转移字符,则只是被识别为普通的字符:
比如\j,会被处理为j这个字母本身;
反斜杠加g以及中括号内一个名字,即:\g,对应着命了名的组,named group