荷兰人 guido van rossum编写。 python3与python2不兼容,但部分新特性移植到2.6/2.7中。 import this显示python之禅。
import this
magic命令:%开头 类似命令行 。列出所有magic命令是%lsmagic。分两种
!用来执行外部命令。 sum?用来查看帮助。
jupyter notebook conda list 列出第三方工具包,cell中执行的话!conda list 更新 conda update conda conda update Anconda 操作 conda install/update/remove package spyder编辑器
%lsmagic
%%file a.py
print('hello')
# %load a.py
print('hello')
%whos
%colors linux
%pylab
print 1+2,1-5,8*2,5/2,5.0/2,7//2,7%2#加减乘除 除 整除 取余数
s= 'a a'+"b b"+"""c c"""
print s[2:5],s.split(' '),len(s)
l=[1,2,3]+[4,5,6]
print l,l[2:-1],len(l),l.append(5),l.append(['a','b']),l.extend([4,5,6])
print l
s={1,2,3,4,5,5,6}
s2={4,5,6,7,8,9}
print len(s),s.add(9),s,s2,s&s2,s|s2,s-s2,s^s2#交并差对称差
d={'A':90,'B':70}
d['B']=75#update
d['C']=60#new
print len(d),d['A'],d['B'],d.keys(),d.values(),d.items()
from numpy import array
a=array([1,2,3])
from matplotlib.pyplot import plot
plot(a,a**2)
import sys
print sys.maxint,1+2,1-5,8*2,5/2,5.0/2,7//2,7%2,\
6**2,type(56l),type(sys.maxint+1)#加减乘除 除 整除(返回比结果小的最大整数) 取余数
print 3.4-3.2#print 自动处理了
3.4-3.2
import sys
print sys.float_info
a=1+2j
print type(a),a.real,a.imag,abs(-45.5),round(4.5),round(-4.3),int(round(2.9)),0xff,067,0b1100,1e-6,1<2<3
s='abc'+"def"+"""ghi"""+'jkl'*3
print s,len(s),s.split('j'),\
'*'.join(['^','$','T']),'*'.join(s),\
s.replace('j','J'),\
s.upper(),dir(s),str(1+1),repr(1+1),\
hex(255),oct(255),bin(255),int('ff',16),\
'{1}--{0}--{2}'.format('a','b','c'),'hello:{name},you are {:10.2f} old'.format(24,name='lilei'),\
'hello:%s'%('hanmeimei'),\
s[::-1],s[::2]
import string
s='hello!lilei.I"m hammeimei.'
intab=string.punctuation
outtab=' '*len(string.punctuation)
trans=string.maketrans(intab,outtab)
s.translate(trans)
l=[1,2,3,'a','b']+list('def')[0:3]+[7,8]*2
print l,l[::-1]
l[3:5]=[4,5]
l[-2:]=[9,10]
print l
print l,l[2:-1],len(l),l.append(5),l.append(['a','b']),l.extend([4,5,6])
t=(1,2,3)
t2=tuple([2,3,4])
print t,t2[::-1],t.count(5),t.index(2)
%timeit l=list(range(10000))
%timeit s=tuple(range(10000))
%timeit for i in l:pass
%timeit for i in s:pass
d={'a':1,"b":2,('cangzhou','beijing'):'220KM'}
d2=dict([("c",3),('d',4),(5,555)])
d2['e']=5
d['a']=111
del d2['c']
print d,d2,d['a'],d.update(d2),d[('cangzhou','beijing')]
print d.pop('d')
print d,d2.get('a')
print d.keys(),d.values(),d.items()
s=set([1,2,3,4,5,6])
s2={5,6,7,8,9,10}
print s.union(s2),s|s2
print s.intersection(s2),s&s2
print s.difference(s2),s-s2
print s2.difference(s),s2-s
print s.symmetric_difference(s2),s^s2
print {1,2,3,4,5,6}.issubset(s),{1,2,3,4,5}.issuperset(s),{1,2,3}<=s,{1,2,7}<s
s.add(7),s.update({8,9}),s.discard(10),s.remove(9)
print s,s.pop(),s.pop(),s.pop(),s.pop(),s
s=frozenset([1,2])
print s
def f():
pass
a=123
a2=122
a3=122#122相同值可能优化
print a2 is a3
b=1222L
b2=1222L#L值不会优化
print b is b2
print id(f),id(a),id(a2),id(a3),id(b),id(b2)
i=1
while i<10:
if i >5:
break
print i
i+=1
else:
print 'END'
print [x**2 for x in xrange(10) if x<6]
print {x**2 for x in xrange(10) if x>5}
print {x:x**2 for x in xrange(10) if x<6}
def f(*args,**kwargs):
for a in args:
print a
for k,v in kwargs:#.items():
print k,w
a=(1,2,3)
b={'name':'zhangsan','age':23}
f(a,b)
def add1(x):
return x+1
def add2(x,y):
return x+y
map(add,(2,3))
map(add2,(2,3),(4,5))#sequence
import warnings
print dir(warnings)
import sys
print sys.argv,sys.exc_info(),sys.stdin,sys.path,sys.platform,sys.version,sys.version_info
#sys.exit(0)
import os
print os.getcwd(),os.curdir,os.listdir(os.curdir)
print os.linesep,os.sep,os.pathsep
print os.environ
print os.path.isfile('a.txt'),os.path.isdir('./cookie'),os.path.exists('./cookie'),\
os.path.isabs('./cookie'),os.path.split('.'),os.path.abspath('.')
f = os.path.join(os.path.abspath('.'),'argv.py')
print os.path.split(f),os.path.dirname(f),os.path.basename(f),os.path.splitext(f)
import csv
data=[[1,2,3],[4,5,6]]
with open('csvtest.csv','wb') as fp:
#w = csv.writer(fp,delimiter='|')
w = csv.writer(fp)
w.writerows(data)
r=csv.reader(open('csvtest.csv'))
for row in r:
print row#row[2]
import re
s='The quick brown fox jumps over the lazy dog'
print re.match('\w*',s).group(),re.match('.',s).group(),\
re.search('\w*',s).group(),re.search('.',s).group(),\
re.findall('\w*',s),re.split('[a-d]',s),re.sub('[a-d]','*',s)
for r in re.finditer('\w*',s):
pass
#print r.group()
print '*'*20
r=re.compile('\w*')
print r.search(s).group(),r.match(s).group()
#print r.split()
#print r.sub('a','*')
import datetime as dt
d1 = dt.date(2018,3,11)
d2 = dt.date.today()
print d1,d1.strftime('%A %d-%m-%y'),d2-d1,d1-d2,type(d2-d1),dt.date.today()
t1=dt.time(12,11,2,30)
t2=dt.time(12,56,1,34)
print t1.strftime('%I:%m:%p')
#不支持-
dt1 = dt.datetime.now()
dt2 = dt.datetime(2018,3,1,12,11,12,45)
td = dt.timedelta(1,12,51,51,1)
print dt1-dt2,dt1+td,dt1.strftime('%a%A%W%b%B%d%H%I%j%m%M%U%W%Y%y')
#字串创建dt对象
dt3=dt.datetime.strptime('2/10/01','%m/%d/%y')
import sqlite3 as db
c=db.connect('db.sqlite')
cw = c.cursor()
sql = 'drop table users'
cw.execute(sql)
sql = 'create table users(uid int auto_increment primary key,name varchar(32))'
cw.execute(sql)
c.commit()
sql = 'insert into users values(1,"zhang")'
cw.execute(sql)
sql = 'select * from users'
cw.execute(sql)
rows = cw.fetchall()
for r in rows:
print r
c.commit()
c.close()
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column,Integer,String
base = declarative_base()
class user(base):
__tablename__ = 'users'
uid = Column(Integer,primary_key=True)
name = Column(String)
userA = user(uid=3,name='qian')
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
engine = create_engine('sqlite:///db.sqlite')
session = sessionmaker(bind=engine)
Session = session()
#Session.add(userA)
#Session.commit()
for row in Session.execute('select * from users'):
print row
for u in Session.query(user).filter(user.uid<=2):
print u.uid,u.name
a=[1,2]
def fun(a):
a[0]+=1
fun(a)
fun(a)
print a
def f(c):
return c*2
def f2(c):
return c>=5
def f3(x,y):
return x*y
a='sos'
map(f,a)
filter(f2,xrange(10))
reduce(f3,xrange(1,10))
map(lambda x:x*3,xrange(10))
yield
def f():
for i in xrange(10):
yield i
def f2():
for i in xrange(10):
yield i,i*2
for f in f():
print f,
for k,v in enumerate(f2()):
print k,v
def dec(f): return f def foo(x):print x foo=dec(foo) 或者@dec def foo(x) print x
def d1(f):
print 'd1pre'
return f
def d2(f):
print 'd2pre'
return f
@d1
@d2
def f(x):
print 'fpre'
print x
f('gong')
foo=d2(d1(f('hahaha')))
import operator as op
print reduce(op.add,xrange(10))
import itertools
#相当于3!
for i in itertools.permutations((2,3,4)):
print i
#相当于C3,2
for i in itertools.combinations((2,3,4),2):
print i
:# 数据结构
数组 队列 栈 集合 树 图 集合 字典 结构体
新建 空建,带值,默认值,转化建立
增 增一个 增多个
删 删一个 删多个 删全部
改 改一个 改多个 改全部
引用 单个 多个 切片
查位置 单个 多个 全部
操作 连接 排序 销毁 求长度 是否在 遍历
#%%writefile sched.py
from sched import *
import time
def echo(st):
print '*'*10+st+'*'*10
s = sched.scheduler(time.time,time.sleep)
s.enter(3,1,echo,('hello',))
s.enter(3,1,echo,('li',))
s.run()