1.爬虫request,scrapy2.数据pandas,etc3.大数据hadoop or javasript or 4.数据挖掘算法 5.自然语言处理?
//数据分析师的技能牌中SQL,Excel,Python和R出现频次最高,尤其是SQL。数据挖掘工程师的技能牌中Python,Java,Hadoop,Spark出现频次较高,尤其是Python。
Running Programs in Atom
Running programs in Atom using atom-runner is relatively straight-forward. From the atom-runner documentation:
Hit Ctrl+R (Alt+R on Win/Linux) to launch the runner for the active window.
Hit Ctrl+Shift+R (Alt+Shift+R on Win/Linux) to run the currently selected text in the active window.
Hit Ctrl+Shift+C to kill a currently running process.
Hit Escape to close the runner window.
python -m pip install --upgrade pip
tab indent
===============================================================================
re正则表达式
raw string原始字符串
原始字符串是用来解决正则表达式和ASCII字符之间的冲突而产生的技术。例如正则表达式\b表示匹配单词边界???,而ASCII字符\b表示退格,如果正则表达式要匹配退格,就要使用双重转义,如\b。为了简化过多的转义符,就引入了原始字符串,例如字符串’\b’可用r’\b’来表示。所以原始字符串常用在正则表达式里。
类似于表示UNICODE字符的时候,在字符串前加’u’,表示原始字符串的时候,在字符串前加’r’,这个字符串就是原始字符串了。加r前缀的意思就是防止转义。
#什么时候需要转义???
在复杂性,效率,准确性间取舍
I think that python do not support ‘/<’ ‘/>’
#反向引用
result = re.search(r"([A-Za-z]+) +\1",s1)
result1 = re.search(r"((\d)+) \1",“123123” )
result2 =re.search(’(\d).\1’,‘234234’ )
#大多数程序程序设计语言支持字符组内部
#区间量词
s2=‘34343’
result1=re.search(r"\d{0,9}",s2)
#引号内的字符串
“[^”]*"
s2=’$1.99’
result2=re.search(’$[0-9]+(.[0-9][0-9])?’,s2)
非捕获组
语法:
字符 描述 示例
(?:pattern)
匹配pattern,但不捕获匹配结果。
'industr(?:y|ies)
匹配’industry’或’industries’。
(?=pattern)
零宽度正向预查,不捕获匹配结果。
‘Windows (?=95|98|NT|2000)’
匹配 “Windows2000” 中的 “Windows”
不匹配 “Windows3.1” 中的 “Windows”。
(?!pattern)
零宽度负向预查,不捕获匹配结果。
‘Windows (?!95|98|NT|2000)’
匹配 “Windows3.1” 中的 “Windows”
不匹配 “Windows2000” 中的 “Windows”。
(?<=pattern)
零宽度正向回查,不捕获匹配结果。
‘2000 (?<=Office|Word|Excel)’
匹配 " Office2000" 中的 “2000”
不匹配 “Windows2000” 中的 “2000”。
(?
零宽度负向回查,不捕获匹配结果。
‘2000 (?
匹配 " Windows2000" 中的 “2000”
不匹配 " Office2000" 中的 “2000”。
\s 所有能表示‘空白字符’字符组
\t 匹配制表符
\b perl中匹配一个单词分界符,字符组中匹配一个退格符
s2=‘aaa(a)^]a’
#result=re.search(‘aaa\(a\)\^\][a]’,s2)
#result=re.search(r’[aaa(a)^]a]’,s2)
#result=re.search(’[aaa(a)^]a]’,s2)
#result=re.search(’[aaa(a)^]a]*’,s2)
result=re.search(r’aaa(a)^]a’,s2)