python
------------
脚本语句。
/usr/bin/python //2.7.5
使用缩进格式
---------------
数据结构
-------------
1.list,类似于Array,可变
[1,2,3,4]
2.tuple,元组,不可变
t = (1,2,3,2,4)
3.dict,字典,类似于map,可变
d = {key:valyue,....}
d[key]
lst[2:4] //
文件操作
--------------
import os //模块,就是文件
open();
python访问mysql
------------------
0.注意
目前最高只支持python3.4版本。
需要降级。
1.安装mysql
2.安装mysql的python模块
#
import MySQLdb
db = MySQLdb.connect("localhost","root","root","python")
cur = db.cursor()
#执行sql
cur.execute("select version()");
data = cur.fetchone()
print data
db.close()
安装python3.4 + mysql
-------------------------
1.安装python3.4(不能高于该版本,mysql不支持)
2.安装mysql模块
2.1)下载PyMySQL-0.7.11.zip
2.2)解压
2.3)进入解压目录,执行命令
cmd>python setup.py install
2.4)查看是否在python安装下有该模块对应文件
C:\myprograms\python3.4\Lib\site-packages\PyMySQL-0.7.11-py3.4.egg
3.重启idea,重新加载模块(包含mysql模块)
4.编写python程序
import pymysql
try:
conn = pymysql.connect(host='localhost', user='root', passwd='root', db='python', port=3306, charset='utf8')
cur = conn.cursor()
cur.execute('select version()')
version = cur.fetchone()
print(version)
cur.close()
conn.close()
except Exception:
print("发生异常")
# -*- encoding=utf-8 -*-
import pymysql
# try:
# #开启连接
# conn = pymysql.connect(host='localhost', user='root', passwd='root', db='python', port=3306, charset='utf8')
# #打开游标
# cur = conn.cursor()
# #执行sql
# i = 0 ;
# while i < 10000 :
# sql = "insert into t1(name,age) values('%s',%d)" % ("tom" + str(i),i % 100);
# print(sql) ;
# cur.execute(sql)
# i += 1 ;
# conn.commit()
# #
# cur.close()
# conn.close()
#
# except Exception:
# print("发生异常")
# '''
# 执行事务管理,手动提交事务,回滚事务。
# '''
# conn = pymysql.connect(host='localhost', user='root', passwd='root', db='python', port=3306, charset='utf8')
# try:
# #关闭自动提交
# conn.autocommit(False)
# #开始事务
# conn.begin()
# #打开游标
# cur = conn.cursor();
# sql = "delete from t1 where id > 130000"
# cur.execute(sql)
# conn.commit()
# cur.close
#
# except Exception:
# conn.rollback()
# finally:
# conn.close()
# '''
# 执行update.
# '''
# conn = pymysql.connect(host='localhost', user='root', passwd='root', db='python', port=3306, charset='utf8')
# try:
# #关闭自动提交
# conn.autocommit(False)
# #开始事务
# conn.begin()
# #打开游标
# cur = conn.cursor();
# sql = "update t1 set age = age - 1 where age >= 50"
# cur.execute(sql)
# conn.commit()
# cur.close
#
# except Exception:
# conn.rollback()
# finally:
# conn.close()
#
#
# '''
# 聚合查询,统计
# '''
# conn = pymysql.connect(host='localhost', user='root', passwd='root', db='python', port=3306, charset='utf8')
# try:
# # 关闭自动提交
# conn.autocommit(False)
# # 开始事务
# conn.begin()
# # 打开游标
# cur = conn.cursor();
# sql = "select count(*) from t1 where age < 20"
# cur.execute(sql)
# res = cur.fetchone()
# print(res[0])
# conn.commit()
# cur.close
#
# except Exception:
# conn.rollback()
# finally:
# conn.close()
#
# 调用mysql数据中的函数
#
# conn = pymysql.connect(host='localhost', user='root', passwd='root', db='python', port=3306, charset='utf8')
# try:
# # 关闭自动提交
# conn.autocommit(False)
# # 开始事务
# conn.begin()
# # 打开游标
# cur = conn.cursor();
# sql = "select mydb2.sf_add(1,2)"
# cur.execute(sql)
# res = cur.fetchone()
# print(res[0])
# conn.commit()
# cur.close
#
# except Exception:
# conn.rollback()
# finally:
# conn.close()
#
# 调用mysql数据中的存储过程
#
conn = pymysql.connect(host='localhost', user='root', passwd='root', db='mydb2', port=3306, charset='utf8')
try:
# 关闭自动提交
conn.autocommit(False)
# 开始事务
conn.begin()
# 打开游标
cur = conn.cursor();
sql = "call sp_batchinsert(100000)"
cur.execute(sql)
conn.commit()
cur.close
print("ok!!!")
except Exception:
conn.rollback()
print("挂了!!")
finally:
conn.close()
处理时间问题
-----------------
print(tname + " : " + str(i))
import sys
import os
//提取秒,精确到微秒.
cc = int(time.time() * 1000) //转换成毫秒.
print(cc)
进程内部并发执行的代码段。
多线程
---------------
#导入线程模块
import _thread
#定义函数
def hello():
#获得当前线程的名字
tname = threading.current_thread().getName()
for i in [1,2,3,4,5,6,7,8,9]:
print(tname + " : " + str(i))
import sys
import os
cc = int(time.time() * 1000)
print(cc)
#启动新线程
_thread.start_new_thread(hello,())
#切记主线程需要休眠一段时间,否则分线程效果看不到。
import time ;
time.sleep(3)
多线程编程
--------------------------
# -*- encoding=utf-8 -*-
import threading
tickets = 100 ;
loc = threading.Lock()
def getTicket():
global loc ;
loc.acquire()
global tickets
tmp = 0 ;
if tickets > 0 :
tmp = tickets ;
tickets -= 1 ;
else:
tmp = 0 ;
loc.release()
return tmp ;
class Saler(threading.Thread):
def run(self):
while True:
tick = getTicket();
if tick != 0:
print(self.getName() + " : " + str(tick))
else:
return ;
s1 = Saler()
s1.setName("s1")
s2 = Saler()
s2.setName("s2")
s1.start()
s2.start()
python的import指令
----------------------
from OOPDemo import Dog
Dog(..)
import OOPDemo
OOPDemo.Dog(...)
Socket:编程
-----------------
[TCP]
ServerSocket/Socket
socket = socket.socket(...)
socket.bind(("localhost",8888))
socket.listen(0)
socket.accept();
socket = socket.connect((...));
bytes
socket.send(bytes)
[UDP]
UserDatagramSocket
--------------------------------
[UDP发送方]
# -*- encoding=utf-8 -*-
import socket
#创建socket对象SOCK_DGRAM表示udp协议。
sender = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sender.bind(("localhost",9999))
print("启动了udp发送者")
index = 0 ;
while True:
msg = "hello" + str(index) ;
msgBytes = msg.encode("utf-8");
sender.sendto(msgBytes,("localhost",8888))
print("发送了 : " + msg)
index += 1 ;
import time
time.sleep(1)
[UDP接收方]
# -*- encoding=utf-8 -*-
import socket
#创建socket对象SOCK_DGRAM表示udp协议。
recver = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
recver.bind(("localhost",8888))
print("启动了udp接受者")
while True:
(data,addr) = recver.recvfrom(1024)
msg = bytes.decode(data);
print("接收了 from " + str(addr[0]) +":" + str(addr[1]) + " : " + msg)