zoukankan      html  css  js  c++  java
  • 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:360Downloadsfirstpro.txt','w') #新建一个文件
    f.write('hello,world') #f为对象,write写入文件
    f.close()

    f=open(r'E:360Downloadsfirstpro.txt','r') #r代表读出
    p1=f.read(5) #5代表读出的字节数
    p2=f.read()
    print p1,p2
    f.close

    f1=open(r'E:360Downloadscompanies.txt')
    cname=f1.readlines()
    for i in range(0,len(cname)):
    cname[i]=str(i+1)+''+cname[i]
    f1.close
    f2=open(r'E:360Downloadsscompanies.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],' ',week[1:4],' ',week[:6],' ',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:pythona.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 x41 '#八进制数000代表的字符 代表横向制表符
    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

  • 相关阅读:
    新版本支付宝开发流程
    产生随机字串,可用来自动生成密码
    phpcmsv9的分页使用到的函数,直接拿来用就可以了
    js的一些函数
    JS一个简单的计时器
    linux 整理下常用命令
    mysql.sock
    第三方登录之QQ登录(二)——OAuth2.0处理流程介绍(以QQ登录为例)
    第三方登录之QQ登录(一)——QQ互联开放平台新建应用
    networkx AttributeError: 'DiGraph' object has no attribute 'edge'
  • 原文地址:https://www.cnblogs.com/fionacai/p/5782378.html
Copyright © 2011-2022 走看看