字符串
有些情况下是有很多转义字符的,可以这样写,好处是可以省去写繁琐的反斜杠...
1 | print r''' "哈哈哈哈哈😄",\\\\ 6666%%%% "U" "u" ''' |
1 | print(u'我就能打中文,怎么了');//单行 |
一些基本数据类型的互相转换
1 |
|
if-else
缩进请严格按照Python的习惯写法:
4个空格
,不要使用Tab,更不要混合Tab和空格,否则很容易造成因为缩进引起的语法错误。如果你在Python交互环境下敲代码,还要特别留意缩进,并且退出缩进需要多敲一行回车
if - else
1
2
3
4
5score = 55
if score >= 60:
print 'passed'
else:
print 'failed'if - elif - else 多分支判断
1
2
3
4
5
6
7
8
9
10score = 85
if score >= 90:
print 'excellent'
elif score >= 80:
print 'good'
elif score >= 60:
print 'passed'
else:
print 'failed'
循环语句相关
for循环遍历
1 | L = [75, 92, 59, 68] |
while循环
1 | //求100以内的奇数和 |
1 | /**利用 "while True" 无限循环配合 "break" 语句,计算 1 + 2 + 4 + 8 + 16 + ... 的前20项的和。*/ |
///break 和continue
1 | sum = 0 |
//对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,例如,23(2 < 3)。
1 | for x in [ 1,2,3,4,5,6,7,8,9 ]: |
python的 list 操作
创建和访问都很简单,其中有一个特殊一点就是-1下标代表最后一个元素,以此类推..
插入操作: append(item)和 insert (index,item)
1 | L = ['Adam', 'Lisa', 'Bart'] |
删除操作:
1 | L = ['Adam', 'Lisa', 'Paul','P','PAPP','PAD','Pel','PB','PLL','PCCl','Jaul','OOl','Qaul', 'Bart'] |
替换操作:
- 把之前的元素删掉,再添加新元素取代它
- 直接访问下标,修改它的值
1 | L = ['Adam', 'Lisa', 'Bart'] |
dict 和 set的操作
和其他他语言一样,key是唯一的且不能为空,查找速度快,键值访问
1 | dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。 |
- 通过键值访问修改value或者添加元素
set([1,2,3,4]) 就是set( )里面包装一个list,但是元素不能重复,和其他语言类似,用来排重还是阔以的
set 用 in操作符来判断是不是自己元素
1 | s = set(['adam','bart']) |
判断月份是不是对的,如果使用if-else将会很繁琐
1 | months = set(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']) |
遍历set
1 | ///请用 for 循环遍历如下的set,打印出 name: score 来。 |
set也有add和remove操作
1 | ///不能添加重复的元素,否则为无效操作 |
1 | ///移除操作针对已有的元素进行删除,移除不存在的元素时会报错 |
python 网络请求相关
1 | urlopen一般可以接受三个参数: |
修改请求头: 找到Google Chrome打开开发者工具,找到network , 然后刷新网页,查看请求头,把请求头copy出来进行调试 或者直接 浏览器打开http://httpbin.org/headers
测试header的一个工具站点.
将headers组装进Request对象中
1 | import urllib.request |
使用Get方法访问
携带一些信息访问一些网页
1 | import urllib.request |
POST访问
1 | import urllib.request |
设置代理
1 | from urllib.request import ProxyHandler, build_opener |
cookies
1 | import http.cookiejar, urllib.request |
异常处理
URLError
1
2
3
4
5
6
7
8
9
10import urllib.request
import urllib.error
try:
response = urllib.request.urlopen('http://nd.com') # 不存在
except urllib.error.URLError as e:
print(e.reason)
else:
html = response.read().decode('utf-8')
print(html)HTTPError
1
2
3
4
5
6
7
8
9
10import urllib.request
import urllib.error
try:
response = urllib.request.urlopen('http://nd.com') # 不存在
except urllib.error.HttpError as e:
print(e.reason)
else:
html = response.read().decode('utf-8')
print(html)
正则的使用import re
1 | import re |
re.compile函数
有时候,我们可能会在代码中大量重复使用相同的模式,这时我们可以将正则字符串编译成正则对象,以便于复用该匹配模式。
1 | string = "fjfjkks12345skisnn56777kkjsns #$%fi~~````" |
爬取糗事百科的段子~
1 | import re |
百思不得姐的段子
1 | import re |
正则技巧是需要取得的内容使用 (.*?)
正则匹配, \d+
代表一串数字若干, .*?
代表除了换行符外的其他任意字符…
玩这个东西,对于正则一定要烂熟于心啊
时需要数据组装或者数据改造
1 |
|
几行代码简单生成词云 (实践)
1. 准备文本文件,也就是文章或者大量的词语,用于分词系统切割,然后进行分析,词频高的会展示出来字体高亮且加粗加大
2. pycharm里使用pip包管理工具,类似于iOS中的cocoapods般的存在, 先安装几个库matplotlib
,wordcloud
,jieba
1 | sudo brew install pip ///安装pip |
3. 开始写代码
- 把第三方库引入
- 读取文本
- 切割文本即分词
- 设置词云属性
- 渲染文本为词云
- 展示即完成
1 | import matplotlib.pyplot as plt |
先写这么多,后续有时间继续探索,人生苦短,我用python