正文
一、python常用高级库
1、操作数据库:MySQLdb
安装MySQLdb,请访问 http://sourceforge.net/projects/mysql-python
import MySQLdb
# 连接数据库
conn = MySQLdb.connect(host='localhost',user='root',passwd='xxxx',db='test1')
# 获取cursor对象来进行操作
cursor = conn.cursor()
# 从你的全世界错过~
sql = "select * from world where someone like 'you' "
# 执行sql
cursor.execute(sql)
2、Web 开发: flask
把客户端所有的请求都转发给这个程序实例
from flask import Flask import datetime server=Flask(__name__) @server.route('/time',methods=['post','get']) def get_time(): now=str(datetime.datetime.now())#把当前时间转换成字符串 return "当前的时间是:%s"%now server.run(port=8888)
3、网络爬虫:requests
Requests 允许你发送纯天然的 HTTP/1.1 请求,无需手工劳动。你不需要手动为 URL 添加查询字串,也不需要对 POST 数据进行表单编码。Keep-alive 和 HTTP 连接池的功能是 100% 自动化的。
一个简单的爬虫样例:
import requests heads = {} heads['User-Agent'] = 'Mozilla/5.0 ' \ '(Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 ' \ '(KHTML, like Gecko) Version/5.1 Safari/534.50' response = requests.get('http://www.baidu.com',headers=headers)
4、操作execl:pandas
# -*- coding: utf-8 -*- import xlrdimport xlwt from datetime import date,datetime def read_excel(): # 打开文件 workbook = xlrd.open_workbook(r'F:\demo.xlsx') # 获取所有sheet print workbook.sheet_names() # [u'sheet1', u'sheet2'] sheet2_name = workbook.sheet_names()[1] # 根据sheet索引或者名称获取sheet内容 sheet2 = workbook.sheet_by_index(1) # sheet索引从0开始 sheet2 = workbook.sheet_by_name('sheet2') # sheet的名称,行数,列数 print sheet2.name,sheet2.nrows,sheet2.ncols # 获取整行和整列的值(数组) rows = sheet2.row_values(3) # 获取第四行内容 cols = sheet2.col_values(2) # 获取第三列内容 print rows print cols # 获取单元格内容 print sheet2.cell(1,0).value.encode('utf-8') print sheet2.cell_value(1,0).encode('utf-8') print sheet2.row(1)[0].value.encode('utf-8') # 获取单元格内容的数据类型 print sheet2.cell(1,0).ctype if __name__ == '__main__': read_excel()
5、数据分析:numpy
NumPy 包含大量的各种数学运算的函数,包括三角函数,算术运算的函数,复数处理函数等。
NumPy 提供了多种排序的方法。 这些排序函数实现不同的排序算法,每个排序算法的特征在于执行速度,最坏情况性能,所需的工作空间和算法的稳定性。 下表显示了三种排序算法的比较。
三角函数
NumPy 提供了标准的三角函数:sin()、cos()、tan()。
import numpy as np a = np.array([0,30,45,60,90]) print ('不同角度的正弦值:') # 通过乘 pi/180 转化为弧度 print (np.sin(a*np.pi/180)) print ('\n') print ('数组中角度的余弦值:') print (np.cos(a*np.pi/180)) print ('\n') print ('数组中角度的正切值:') print (np.tan(a*np.pi/180))
6、数据画图分析:Matplotlib
import numpy as np from matplotlib import pyplot as plt x = np.arange(1,11) y = 2 * x + 5 plt.title("Matplotlib demo") plt.xlabel("x axis caption") plt.ylabel("y axis caption") plt.plot(x,y) plt.show()
以上实例中,np.arange() 函数创建 x 轴上的值。y 轴上的对应值存储在另一个数组对象 y 中。 这些值使用 matplotlib 软件包的 pyplot 子模块的 plot() 函数绘制。
图形由 show() 函数显示。
7、科学计算:scipy
scipy.special库中的特殊函数都是超越函数,所谓超越函数是指变量之间的关系不能用有限次加、减、乘、除、乘方、开方 运算表示的函数。如初等函数中的三角函数、反三角函数与对数函数、指数函数都是初等超越函数,一般来说非初等函数都是超越函数。
初等函数:指由基本初等函数经过有限次四则运算与复合运算所得到的函数
8、视觉及图像处理:PIL(pillow)
创建缩略图
import os from PIL import Image image_path = 'python-logo.png' # 图片位置 size = (128, 128) # 文件大小 f, e = os.path.splitext(image_path) # 获取文件名与后缀 outfile = f + ".thumbnail" if image_path != outfile: try: im = Image.open(image_path) im.thumbnail(size) # 设置缩略图大小 im.save(outfile, "JPEG") except IOError: print("cannot convert", image_path)
创建滚动图形
python学得好,PS也能干!
from PIL import Image def roll(image, delta): """ 向侧面滚动图像 """ xsize, ysize = image.size delta = delta % xsize if delta == 0: return image part1 = image.crop((0, 0, delta, ysize)) part2 = image.crop((delta, 0, xsize, ysize)) image.paste(part1, (xsize - delta, 0, xsize, ysize)) image.paste(part2, (0, 0, xsize - delta, ysize)) return image if __name__ == '__main__': image_path = 'test.jpg' im = Image.open(image_path) roll(im, 300).show() # 向侧面滚动 300 像素
9、图形界面开发: PyQT
俄罗斯方块游戏是有史以来最受欢迎的电脑游戏。
最初的游戏是由俄罗斯设计和编程的程序员阿列克谢帕基特诺夫于1985年。此后,俄罗斯方块是几乎所有的计算机平台上可用在很多变化。
俄罗斯方块称为积木拼图游戏。在这个游戏中,我们有七种不同形状叫tetrominoes:“s”形,Z-shape,t形,一个l型的空间,一个线,MirroredL-shape和正方形。这些形状的形成有四个方格。形状是跌倒。俄罗斯方块游戏的对象是移动和旋转的形状使他们适合尽可能多。
如果我们设法形成一个行,该行摧毁我们得分。我们直到我们玩俄罗斯方块游戏。
PyQt5是一种用于创建应用程序的工具。还有其他的库是针对创建电脑游戏。
然而,PyQt5和其他应用程序工具包可以用来创建简单的游戏。
创建一个电脑游戏是一个提高编程技能的很好的方发。
10、游戏开发:pygame
Pygame是一组跨平台的Python模块, 用于创建视频游戏。
它由旨在与Python编程语言一起使用的计算机图形和声音库组成。
Pygame由Pete Shinners正式编写, 以取代PySDL。
Pygame适合于创建客户端应用程序, 这些应用程序可以包装在独立的可执行文件中。
import pygame pygame.init() screen = pygame.display.set_mode((400, 500)) done = False while not done: for event in pygame.event.get(): if event.type == pygame.QUIT: done = True pygame.display.flip()