help(obj) 在线帮助, obj可是任何类型
eval(str) 表示合法的python表达式,返回这个表达式
exec(str) 执行合法的python声明,返回字节码
print(value):打印函数
range(valeu):打印 0-(value-1)
range(start,stop)
range(start,stop,step)
ord()函数获取字符的整数表示
chr()函数把编码转换为对应的字符
len()函数计算的是str的字符数,如果换成bytes,len()函数就计算字节数
a.isidentifier():判断标识符是不是合法
名字空间相关
dir(obj) 查看obj的name space中可见的name
vars(obj) 返回一个object的name space。用dictionary表示
locals() 返回一个局部name space,用dictionary表示
globals() 返回一个全局name space,用dictionary表示
类型
type(obj) 查看一个obj的类型
isinstance(obj,cls) 查看obj是不是cls的instance
issubclass(subcls,supcls) 查看subcls是不是supcls的子类
类型转换
bool(value): 可以将数字转换为True(非0)|False 除了bool(0)其他都是True
chr(i) 把一个ASCII数值,变成字符
ord(i) 把一个字符或者unicode字符,变成ASCII数值
oct(x) 把整数x变成八进制表示的字符串
hex(x) 把整数x变成十六进制表示的字符串
str(obj) 得到obj的字符串描述
list(seq) 把一个sequence转换成一个list
tuple(seq) 把一个sequence转换成一个tuple
dict(),dict(list) 转换成一个dictionary
int(x) 转换成一个integer
long(x) 转换成一个long interger
float(x) 转换成一个浮点数
complex(x) 转换成复数
操作字符
string.strip( ‘0’ ) :去除首尾的0 如果什么都不填是去除收尾的空格
string.split(’|’):以|进行分割
string.replace(’\n’,’’):将换行符替换为空
’ '.join([]):将数组每个后面加上空格最后一个不加
string.upper() 字符变大写
string.rjust(7) 向右对齐少的空格填充
string.center(7) 中间对齐 空格填充
操作数组
mylist.count(var) :查看var在mylist出现的次数
L.append(var) #追加元素
L.insert(index,var)
L.pop(var) #返回最后一个元素,并从list中删除之
L.remove(var) #删除第一次出现的该元素
L.count(var) #该元素在列表中出现的个数
L.index(var) #该元素的位置,无则抛异常
L.extend(list) #追加list,即合并list到L上
L.sort() #排序
L.reverse() #倒序
循环的内置函数enumerate
animals = [‘cat’, ‘dog’, ‘monkey’]for idx, animal in enumerate(animals): print(’#%d: %s’ % (idx + 1, animal))
导入time
time.sleep(value):睡value秒
导入re
re.findAll(字符串,文本):返回的是这个字符串在这个文本中出现的次数
re.match(pattern, string, flags=0) 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
- pattern: 匹配的正则表达式
- string: 要匹配的字符串
- flags: 标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。
参考链接:http://www.runoob.com/python/python-reg-expressions.html#flags
re.search(pattern, string, flags=0) # 扫描整个字符串并返回第一个成功的匹配
re.sub(pattern, repl, string, count=0, flags=0) # 用于替换字符串中的匹配项
- pattern: 正则中的模式字符串
- repl: 替换的字符串,也可为一个函数
- string: 要被查找替换的原始字符串
- count: 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
re.split(r’[\s,;]+’, ‘a,b;; c,; d’) # 使用正则表达式切分字符串
导入 os
os.path.abspath(path) #获取绝对路径
os.listdir(path) #遍历目录文件
os.path.join(path, f) #将f加入到path以’/'分割
os.path.isdir(f) #判断f是不是目录
os.getcwd() # 获取当前工作目录 cwd = current working directory
print(os.environ.get(‘PATH’)) # 查看环境变量
print(os.name) # 查看操作系统类型,可以用uname看详情,但是Windows不支持。
导入 json
j = json.dumps(data_1) # 不加s的版本对文件执行操作
jd = json.loads(j) #加载
#文件操作函数:
open(text,mode):打开文件,默认是mode=r 为只读
read(value):输入 不填value则是读所有,如果填value默认是读value个字符
readline():输入一行
readlines():输入多行
seek():文件内移动
write():输出
close():关闭文件
文件变量.tell():打印当前文件指针的位置
导入 request
requests.get(‘http://ip138.com/post/’) 获取页面
r.status_code 查看状态吗
r.text 查看返回html内容
导入 bs4
from bs4 import BeautifulSoup
r = requests.get('http://ip138.com/post/')
text = r.text.encode('iso-8859-1').decode('gb2312')
bs = BeautifulSoup(text, 'html5lib')
links = bs.select('div#newAlexa > table.t4 > tbody > tr > td > a')
print(len(links))
for link in links:
print(link.text, ': http://ip138.com' + link.get('href'))
导入 selenium
# 使用selenium的例子
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://ip138.com/post/')
links = driver.find_elements_by_css_selector('div#newAlexa > table.t4 > tbody > tr > td > a')
for link in links:
print(link.text, ': ', link.get_attribute('href'))
driver.quit()
练习题:模拟百度搜索
import time
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
input_box = driver.find_element_by_css_selector('input#kw')
input_box.send_keys('python') #自动在搜索框输入python
time.sleep(3)
submit_btn = driver.find_element_by_css_selector('input#su')
submit_btn.click()
time.sleep(3)
driver.quit()
Set 集合
add():集合中追加元素
clear():清空集合中所有元素
copy():复制一份集合
pop():随机删除集合中一个元素
remove(元素):删除指定元素,指定元素不存在会报错
discard(元素):删除指定元素,指定元素不存在也不会报错
set1.intersection(set2):求集合set1与set2的交集 =set1&set2
set1.union(set2)):求集合set1与set2的并集=set1|set2
set1.update(set2):set1与set2的并集并赋值给set1
set1.difference(set2):求集合set1与set2的差集(差集:只存在于set1中而不存在set2中的元素)=set1-set2
set1.difference_update(set2):求集合set1与set2的差集并赋值给set1
set1.symmetric_difference(set2):求集合set1与set2的交叉补集(并集扣除交集部分)=set1^set2
set1.symmetric_difference_update(set2):求集合set1与set2的交叉补集并赋值给set1
set1.isdisjoint(set2):set1与set2没有交集则返回True
set1.issubset(set2):set1是set2的子集,则返回True =set<=set2
set1.issuperset(set2):set1是set2的父集,则返回True =set1>=set2
forzenset(“hello”):定义一个不可变集合
Tuple 元组(元组没有列表的增删改 ,只有查的操作)
—操作
元组之间可以使用 +(连接) 和 (复制)
tup=(1,2,3)
tup2=(3,4,5)
tup3 = tup1 + tup2 #输出tup3=(1,2,3,3,4,5)
tup4=tup13 #输出 tup4=(1,2,3,1,2,3,1,2,3)
—方法
cmp(tup1,tup2): 比较两个元组元素
len(tup): 返回元组中元素的个数
max(tup): 返回元组中元素最大的值
min(tup): 返回元组中元素最小的值
tuple(seq): 将列表转化为元组
tuple.index(obj):从元组中找出某个值第一个匹配项的索引值
tuple.count(obj): 统计某个元素在元组中出现的次数
字典 MAP
d = {‘cat’: ‘cute’, ‘dog’: ‘furry’} # Create a new dictionary with some data
print(d[‘cat’]) # Get an entry from a dictionary; prints “cute”
print(‘cat’ in d) # Check if a dictionary has a given key; prints “True”
d[‘fish’] = ‘wet’ # Set an entry in a dictionary
print(d[‘fish’]) # Prints “wet”
#print(d[‘monkey’]) # KeyError: ‘monkey’ not a key of d
print(d.get(‘monkey’, ‘N/A’)) # Get an element with a default; prints “N/A”
print(d.get(‘fish’, ‘N/A’)) # Get an element with a default; prints "wet"del d[‘fish’] # Remove an element from a dictionary
print(d.get(‘fish’, ‘N/A’)) # “fish” is no longer a key; prints “N/A”
如果想获取map的建和值使用iterms()
d = {‘person’: 2, ‘cat’: 4, ‘spider’: 8}
for animal, legs in d.items():
print(‘A %s has %d legs’ % (animal, legs))
#Prints “A person has 2 legs”, “A cat has 4 legs”, “A spider has 8 legs”