python入门基础代码
#查找index函数的帮助
help(str.index)
#for循环和break语句
from math import sqrt
for i in range(2,101):
flag=1
k=int(sqrt(i))
for j in range(2,k+1):
if i%j==0:
flag=0
break
if(flag):
print i
#continue语句,满足条件跳出continue后面的语句
sumA=0
i=1
while i<=5:
sumA+=i
i+=1
if i==3:
continue
print 'i=%d,sum=%d'%(i,sumA)
#循环中的else语句
k=5
for i in range(1,10):
if k==3:
break
else:
print i
#自定义函数/素材1-100间素数
from math import sqrt
def isprime(x):
if x==1:
return False
k=int(sqrt(x))
for j in range(2,k+1):
if x%j==0:
return False
return True
for i in range(2,101):
if isprime(i):
print i
def f(x,y=True): #默认参数要放在参数列表的最后
'x and y both correct words or not'
if y:
print x,'and y both correct'
print x,'is Ok'
f(68)
f(68,False)
#传递函数
def addme2me(x):
return(x+x)
def self(f,y):
print f(y)
self(addme2me,2.2)
#lambda函数
my_add=lambda x,y:x+y
my_add(5,6)
#数据获取与表示
f=open(r'E:\360Downloads\firstpro.txt','w') #新建一个文件
f.write('hello,world') #f为对象,write写入文件
f.close()
f=open(r'E:\360Downloads\firstpro.txt','r') #r代表读出
p1=f.read(5) #5代表读出的字节数
p2=f.read()
print p1,p2
f.close
f1=open(r'E:\360Downloads\companies.txt')
cname=f1.readlines()
for i in range(0,len(cname)):
cname[i]=str(i+1)+''+cname[i]
f1.close
f2=open(r'E:\360Downloads\scompanies.txt','w')
f2.writelines(cname)
f2.close()
#网络数据获取
import urllib
r=urllib.urlopen('http://z.cn/')
html=r.read
#序列
#标准类型运算符
'apple'<'banana'
[1,2,3]!=[4,5,6]#值比较
atuple=('ba',126.4)
btuple=atuple
btuple is not atuple#对象身份比较
('86.40'<'122.64') and ('apple'<'banana')#布尔运算
#序列类型运算符
week=['mondy','tuesday','wednesday','thursday','firday','satuday','sunday']
print week[1],week[-2],'\n',week[1:4],'\n',week[:6],'\n',week[::-1]#序列值的序号是从0开始到N-1或者从-1到N
'apple'*3
'ba' in ('ba','the boeingcompany')
#序列类型转换工厂函数
list('hello,world')#将字符串转成列表
tuple('hello,world')#将字符串转成元组
#字符串
s1='''hello
'a'
''b''
world!'''
s1 #三引号可以保持里面字符串的原貌
s2=r'd:\python\a.py'
s2
ccode=['axp','ba','cat','csco','cvx']
cprice=['86.40','122.64','99.44','23.78','115.91']
for i in range(5):
print '%d%8s:%8s' %(i,ccode[i],cprice[i]) #%8s指的占8个字符
print 'i get %d%%!' %32 #两个%%会留下一个
astr='what do you think of this saying "no pain,no gain"?'
tempstr=astr.split('\"')[1] #\"为转义字符
if tempstr.istitle():
print 'it is title format'
else:
print 'it is not title format'
print tempstr.title()
astr='\101\t\x41\n'#\八进制数000代表的字符 \t代表横向制表符
print astr
#列表
jscores=[9,9,8.5,10,7,8,8,9,8,10]
ascore=9
jscores.sort()
jscores.pop() #去掉最高分
jscores.pop(0) #去掉最低分
jscores.append(ascore) #合并
avescore=sum(jscores)/len(jscores)
print avescore
week=['monday','tuesday','wednesday','thursday','firday']
weekend=['saturday','sunday']
week.extend(weekend)#extend合并函数
for i,j in enumerate(week):#enumerate函数 产生从0开始的序列
print i+1,j
numlist=[3,11,5,8,16,1]
numlist.sort(reverse=True) #按逆序排列
numlist
fruitlist=['apple','banana','pear','lemon','avocado']
fruitlist.sort(key=len)
fruitlist #按字符长度排序
#列表解析
[x**2 for x in range(10)]
[x**2 for x in range(10) if x**2<50]
[(x+1,y+1) for x in range(2) for y in range(2)]
#元组
atruple=(1,2,3)
atruple
atruple[1:]
len(atruple)
btruple=(['monday',1],2,3)
btruple[0][1]
2014, #创建元组2014
alist=['axp','ba','cat']
atruple=('axp','ba','cat')
alist[1]='alibaba'
atruple[1]='alibaba'#元组是不可变的,列表是可变的
alist=[3,5,2,4]
alist.sort() #改变原来列表
alist
alist=[3,5,2,4]
sorted(alist) #sorted只是新生成一个列表的副本,原来的列表并没有改变
alist
#但元组就只能使用sorted,不能用sort,因为不能改变元组
atruple=(3,5,2,4)
atruple.sort #会报错
def func(args1,args2='world'):#元组作为函数形式的参数
print args1,args2
func('hello',)
func(args2='apple',args1='hello')
def func(args1,*args):
print args1
print args
func('hello,','wangdachui','liuyuan','linlin')
#返回值类型为元组的函数enumerate()、coerce()
#字典
ainfo={'wangdachui':3000,'niuyun':2000,'linlin':3000} #直接创建字典
info=[('wangdachui',3000),('niuyun',2000),('linlin',3000)]
binfo=dict(info) #利用dict函数创建字典
cinfo=dict([['wangdachui',3000],['niuyun',2000],['linlin',3000]])
dinfo=dict(wangdachui=3000,niuyun=2000,linlin=3000)
adict={}.fromkeys(('wangdachui','niuyun','linlin'),3000) #fromkeys函数将所有的keys初始值设置为3000
adict
plist=[('axp','american express','86.40'),('ba','the boeing company','122.64'),('cat','caterpillar inc.','99.44')]
alist[]
blist[]
for i in range(2):
astr=plist[i][0]
bstr=plist[i][2]
alist.append(astr)
blist.append(bstr)
adict=dict(zip(alist,blist)) #zip函数
#字典的使用
#字典的基本操作
ainfo={'wangdachui':3000,'niuyun':2000,'linglin':4500,'tianqi':8000}
ainfo['niuyun'] #键值查找
ainfo['niuyun']=9999#更新
ainfo
ainfo['funyun']=1000#查找
'mayun' in ainfo #成员判断
del ainfo #删除字典
ainfo={'wangdachui':3000,'niuyun':2000,'linglin':4500,'tianqi':8000}
for key in ainfo.keys():
print 'name=%s,salary=%s' %(key,ainfo[key])
"niuyun's salary is %(niuyun)s." %ainfo #%(key) 格式说明符 %字典对象名
ainfo={'wangdachui':3000,'niuyun':2000,'linglin':4500,'tianqi':8000}
ainfo.keys()
ainfo.values()
ainfo={'wangdachui':3000,'niuyun':2000,'linglin':4500,'tianqi':8000}
binfo={'wangdachui':3000,'niuyun':9999,'linglin':4500,'wangzi':8000}
ainfo.update(binfo)#update函数 快速更改
ainfo
astock={'axp':86.4,'ba':122.64}
bstock=astock
astock={} #此时只会讲astock清空,不会将bstock清空,需要用clear函数才会将关联的都删除
bstock
astock.clear()
bstock
#字典作为函数的形式参数
def func(args1,*argst,**argsd): #一个*是可变长位置参数,**可变长关键字参数
print args1
print argst
print argsd
func('hello','wangdachui','niuyun','linglin',a1=1,a2=2,a3=3)
#集合
names=['wangdachui','niuyun','wangzi','wangdachui','lingling','niuyun']
namesset=set(names) #set删除重复对象,因为集合的元素都不重复
namesset
aset=set('hello')
aset
fset=frozenset('hello')
fset
#集合比较
aset=set('sunrise')
bset=set('sunset')
'u' in aset
aset==bset
set('sun')<aset
aset&bset #集合关系运算
aset|bset
aset-bset
aset^bset #不能同时属于两个集合
aset-=set('sun') #运算符可复合
#集合内建函数
aset=set('sunrise')
bset=set('sunset')
aset.issubset(bset) #是否为子集
aset.intersection(bset) #交集
aset.difference(bset)#差补
cset=aset.copy() #拷贝
#面向可变集合的函数
aset=set('sunrise')
aset.add('!')
aset
aset.update('yeah')
aset.remove('!')
aset.clear()
#扩展库scipy
import numpy as np
xarray=np.ones((3,4)) #生产3*4的全部为1的矩阵
xarry
from scipy import linalg
arr=np.array([[1,2],[3,4]])
linalg.det(arr)
#ndarry
from numpy import *
aarray=array([1,2,3])
aarray
barray=array([(1,2,3),(4,5,6)])
barray
zeros((2,2))
arange(1,5,0.5)
aarray=array([(1,2,3),(4,5,6)])
sin(aarray)
aarray.shape #数组的维度
barray=aarray.reshape(3,2)
barray
aarray.sum()
aarray.sum(axis=0) #通过设置参数,分别行、列求和
aarray.sum(axis=1)
carray=array([1,3,5])
carray[:1] #切片功能
darray=array([2,4,6])
earray=array([7,8,9])
where(carray>2,darray,earray) #where函数
def fun(x,y):
return (x+1)*(y+1)
arr=fromfunction(fun,(9,9)) #fromfunction函数
arr
#ufunc函数能对数组中每个元素进行操作,包括add等函数
import numpy as np
a=np.arange(1,5)
b=np.arange(2,6)
np.add(a,b)
np.add.accumulate([2,3,8])
np.multiply.accumulate([2,3,8])
#series
#series 类似于一维数组的对象,由数据和索引组成
from pandas import Series
import pandas as pd
aser=pd.Series([1,2.0,'a'])
bser=pd.Series(['apple','peach','lemon'],index=[1,2,3])
bser.index
bser.values
aser['a']
import numpy as np
np.exp(aser)
#series数据对齐
data={'axp':'86','csco':'122','ba':'94'}
sindex=['axp','csco','aapl']
aser=pd.Series(data,index=sindex)
aser
pd.isnull(aser)
#series的name属性
aser.name='cnames'
aser.index.name='volume'
aser
#dataframe表结构
#大致可以看成共享一个index的series的集合
data={'name':['wangdachui','linlin','niuyun'],'pay':[4000,5000,6000]}
frame=pd.DataFrame(data)
frame['name']
frame.pay
frame.ix[2] #索引所对应的数据
#dataframe对象的修改和删除
frame['name']='admin' #对name下的所有元素进行更改
del frame['pay']
frame
frame.index.name='no'
#便捷数据获取
#便捷网络数据 雅虎财经
from matplotlib.finance import quotes_historical_yahoo
from datetime import date
import pandas as pd
today=date.today()
start=(today.year-1,today.month,today.day)
quotes=quotes_historical_yahoo('AXP',start,today)
df=pd.DataFrame(quotes)
print df
#自然语言工具包NLTK
from nltk.corpus import gutenberg
import nltk
print gutenberg.fileids()
#数据准备
from matplotlib.finance import quotes_historical_yahoo
from datetime import date
import pandas as pd
today=date.today()
start=(today.year-1,today.month,today.day)
quotes=quotes_historical_yahoo('AXP',start,today)
fields=['date','open','close','high','low','volume']
quotesdf=pd.DataFrame(quotes,columns=fields) #通过columns数据加属性名
quotesdf=pd.DataFrame(quotes,index=range(1,len(quotes)+1,columns=fields)
print quotesdf
from datetime import date
from datetime import datetime
y=datetime.strftime(x,'%Y-%m-%d') #将日期转换成固定格式
import pandas as pd
dates=pd.date_range('20141001',periods=7) #自己创建时间序列
dates
#数据显示
djidf.index
djidf.columns
djidf.values
djidf.describe#显示数据描述
djidf.head(5)#显示前五行数据
djidf.tail(5)
#数据选择
quotesdf[u'2013-12-02':u'2013-12-06'] #dataframe可以使用索引选择
djidf['code']
djidf.loc[1:5,] #通过loc通过标签选择数据,第一个参数是行标签,第二个参数是列标签
djidf.loc[:,['code','lasttrade']] #前面这个:需要
djidf.loc[1:6,[0,2]] #通过的行位置,列位置选择标签
quotesdf[quotesdf.index>=u'2014-01-01']
quotesdf[(quotesdf.index>=u'2014-01-01')&(quotesdf.close>=95)]#条件筛选
#简单统计预处理
djidf.mean(columns='lasttrade')#最近一次成交价的平均值
djidf[djidf.lasttrade>=120].name#最近一次成交价大于等于120的公司名
len(quotesdf[quotesdf.close>quotesdf.open]) #股票涨的天数
len(quotesdf)-131
status=np.sign(np.diff(quotesdf.close)) #np.diff相邻两天数据的差
status[np.where(status==1.)].size
djidf.sort(columns='lasttrade')[27:].name#排序结果列出前三甲的公司名 ,一共是30条记录,所以是[27:]
t=quotesdf[(quotesdf.index>=u'2014-01-01')&(quotesdf.index<=u'2014-02-01')]
len(t) #统计2014年1月份的股票开盘天数
#分组
tempdf.groupby('month').count().month #每个月的股票开盘天数
tempdf.groupby('month').sum().volume #每个月的股票总成交量
g=tempdf.groupby('month')
gvolume=g['volume']
print gvolume.sum()
#合并
#append追加 纵向
p=quotesdf[:2]
q=quotesdf[u'2014-01-01':u'2014-01-05']
p.append(q)
#concat连接
pieces=[tempdf[:5],tempdf[len(tempdf)-4:]]
pd.concat(pieces)
#两个不同逻辑结构的对象能否连接 纵向
piece1=quotesdf[:3]
piece2=tempdf[:3]
pd.concat([piece1,piece2],ignore_index=True)
#join连接 横向
pd.merge(djidf,akdf,on='code')
pd.merge.(djidf,akdf,on='code').drop(['lasttrade'],axis=1)
#聚类分析
from pylab import *
from scipy.cluster.vq import *
list1=[88,74,96,85]
list2=[92,99,95,94]
list3=[91,87,99,95]
list4=[78,99,97,81]
list5=[88,78,98,84]
list6=[100,95,100,92]
data=vstack((list1,list2,list3,list4,list5,list6))
centroids,_=kmeans(data,2)
result,_=vq(data,centroids)
print result
python入门基础代码的更多相关文章
- Python入门基础学习 一
Python入门基础学习 一 Python下载及安装 下载地址:https://www.python.org/,选择最新的版本下载 稍等一会,安装完成. 简单语句 从idle启动Python:IDLE ...
- Python 入门基础6 --字符编码、文件操作1
今日内容: 1.字符编码 2.字符与字节 3.文件操作 一.字符编码 了解: cpu:将数据渲染给用户 内存:临时存放数据,断电消失 硬盘:永久存放数据,断电后不消失 1.1 什么是编码? 人类能够识 ...
- Python入门基础学习 三
Python入门基础学习 三 数据类型 Python区分整型和浮点型依靠的是小数点,有小数点就是浮点型. e记法:e就是10的意思,是一种科学的计数法,15000=1.5e4 布尔类型是一种特殊的整形 ...
- Python入门基础学习 二
Python入门基础学习 二 猜数字小游戏进阶版 修改建议: 猜错的时候程序可以给出提示,告诉用户猜测的数字偏大还是偏小: 没运行一次程序只能猜测一次,应该提供多次机会给用户猜测: 每次运行程序,答案 ...
- Python 入门之代码块、小数据池 与 深浅拷贝
Python 入门之代码块.小数据池 与 深浅拷贝 1.代码块 (1)一个py文件,一个函数,一个模块,终端中的每一行都是代码块 (代码块是防止我们频繁的开空间降低效率设计的,当我们定一个变量需要开辟 ...
- python入门基础
Python 入门 变量 什么是变量?变量就是变化的量,核心是"变"和"量"两个字,变就是变化,量就是衡量状态. 为什么需要变量?程序执行的本质就是一系列状态的 ...
- Python入门 ---基础知识
Python入门不知道这些你还是承早放弃吧!真的 Python 简介 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言 ...
- Python入门基础教程(儿童版) [分享一本入门级教程]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. 推荐书名 No Starch--Python for ...
- Python 入门基础学习
Python入门学习 我们使用python3.0版本 首选来入门 带你进入Hello World >>> print ("Hello World")Hell ...
随机推荐
- 初识JSLint及建议JS编码风格
可能都或多或少的知道JSLint是一个JavaScript的代码质量工具,一个JavaScript语法检查器和校验器,它能分析JavaScript问题并报告它包含的缺点. 被发现的问题往往是语法错误, ...
- ecshop 远程图片本地化
define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); $smarty->assign('siteD ...
- Objective -C学习笔记 之copy(复制)
//自定义类对象实现copy需要遵守copy协议(否则程序崩溃),实现必须实现的协议方法,里面的代码就决定了你的copy是深是浅 #import <Foundation/Foundation.h ...
- chmod 和 chown 的用法
一.chown 命令 用途:更改文件的所有者或组.命令由单词change owner组合而成. 使用示例: 1,更改文件的所有者: chown jim program.c 文件 program.c 的 ...
- ListBox
<asp:ListBox runat="server" ID="txtName" Width ="200" Height=" ...
- 用jackson封装的JSON工具类
package hjp.smart4j.framework.util; import com.fasterxml.jackson.databind.ObjectMapper; import org.s ...
- 内嵌DB
SQLLite H2 MySQL Embeded 等 比较项目 SQLite H2 database engine MySQL Embedded Footprint 350KiB ~1MB <2 ...
- 编译安装chkrootkit出现的问题
tar xf chkrootkit.tar.gz cd chkrootkit-* make sense的时候出现make: *** [strings-static] Error 1,解决办法:yum ...
- nginx的简单操作
1.今天在nginx下访问403,发现图片访问出现403,其他没有问题,看来下图片的文件夹没有读写的权限,修改下权限就OK了! 2.重启nginx 在env/nginx/sbin目录下输入:nginx ...
- yourphp读取不到hits
源代码 <YP:list name="Article" order="id desc" catid="37" limit=" ...