python 小练习
my2010Sam
这个作者很懒,什么都没留下…
展开
-
将两个列表元素组成字典
#coding:utf-8a=['a','b','c']b=[1,2,3]s=zip(a,b)d={}for k,v in s: d[k]=vprint d原创 2013-11-12 18:17:41 · 2094 阅读 · 0 评论 -
N的阶乘拓展
#coding:utf-8'''N的阶乘定义为:N!=N×(N-1)×……×2×1请编写一个程序,输出N的阶乘的十进制表示中从最末一个非0位开始自低位向高位数的第K位。现在给你N和K(0<=N<=10000,1<=K<=5),请你输出要求的数字(保证存在)。例如:N=5,K=2,则输出1 note:(5!=120); N=8,K=3,结果为0 note:(8!=40原创 2013-12-12 17:54:07 · 1098 阅读 · 0 评论 -
递归函数
#coding:utf-8def main(n): if n==1: return 1 return n * main(n-1)if __name__ == '__main__': print main(5) ''' # 当数值较大时,提示RuntimeError: maximum recursion depth exceeded。原创 2013-12-12 17:51:03 · 903 阅读 · 0 评论 -
输出n的因子
输出指定数n的因子,如:20的因子有:1, 2, 4, 5, 10, 20使用fiter函数过滤#coding:utf-8def main(n): g=lambda m: not n%m #或使用 n%m ==0,如果可以整除,则返回 m print filter(g,range(1,n+1))if __name__ == '__main__': m原创 2013-12-13 17:20:46 · 1252 阅读 · 0 评论 -
优化程序结构
优化程序结构,增加程序的可读性#coding:utf-8import redef match_sxz(noun): return re.search('[sxz]$',noun)def apply_sxz(noun): return re.sub('$','es',noun)def match_h(noun): return re.search('[^adio原创 2013-12-30 20:53:05 · 812 阅读 · 0 评论 -
以lambda形式优化结构
#coding:utf-8import re'''以lambda函数形式将这些函数的内容直接嵌入rules列表本身'''rules=\((lambda word:re.search('[sxz]$',word),lambda word:re.sub('$','es',word)),(lambda word:re.search('[^aeioudgkprt]h$',word),原创 2013-12-30 21:07:11 · 738 阅读 · 0 评论 -
生成器的应用例子
dive into python P345使用生成器替代递归:def fib(maxnumber): a,b=0,1 while a<maxnumber: yield a a,b=a+b,aif __name__ == '__main__': #fib(100)返回一个生成器的对象 #for循环将会创建一个生成器转载 2013-12-31 21:32:41 · 851 阅读 · 0 评论 -
使用文件进行优化
#函数也是对象,将函数赋值给变量rule,使用rule接收参数,调用函数#coding:utf-8import reimport string'''rule.en内容:[szx]$ $ es[^aeioudgkprt]h$ $ es[^aeiou]y$ y$ ies$ $原创 2014-01-01 14:13:06 · 814 阅读 · 0 评论 -
移除连续重复的字符串元素
dive into python P350移除连续重复的字符串元素b='abccdefekjllj'def remove(): a2=b[0] for i in b[1:]: if a2[-1]!=i: a2+=i print a2 #abcdefekjlj转载 2014-01-01 15:53:10 · 2426 阅读 · 0 评论 -
删除列表元素时需注意的问题
‘’‘ 如果在遍历列表,打印列表元素过程中,删除元素时会出现跳过某个元素的现象。如下例:’‘’l=range(10)for i in l: if i==5: print '-->',i l.remove(i) print i#输出结果:0 1 2 3 4 5 7 8 9 跳过了6原列表原创 2013-10-09 14:02:00 · 1405 阅读 · 0 评论 -
继承父类,调用父类中的方法
例子中包括personel.py、little.py 两个模块,在little.py模块中没有young方法,而父类person中有该方法,则python会搜索父类中的方法,并调用该方法。personel.py#coding:utf-8class person: def __init__(self,name,age): self.name = na原创 2014-01-10 17:54:24 · 2516 阅读 · 0 评论 -
序列中对应列的值相加
#coding:utf-8'''对应列的值相加'''a=['8533873.000000', '4922178.500000', '7.419005', '63.000282', '59']b=['8422450.000000', '4791319.500000', '9.877247', '63.003777', '58']c=['8617203.000000', '47747原创 2013-12-05 19:09:57 · 1225 阅读 · 0 评论 -
结尾非零数的奇偶性
描述: 给你一个正整数列表 L, 如 L=[2,8,3,50], 判断列表内所有数字乘积的最后一个非零数字的奇偶性,奇数输出1,偶数输出0. 如样例输出应为0#coding:utf-8L=[2,8,3,50]product=1for i in L: product *=idef main(): global product while prod转载 2013-12-02 18:04:32 · 1155 阅读 · 0 评论 -
#小练习 使用HTMLParser获取data时注意事项
from HTMLParser import HTMLParserclass myHTMLParser(HTMLParser): def __init__(self): HTMLParser.__init__(self) self.links=[] def handle_starttag(self,tag,attrs): if t原创 2013-11-08 21:05:07 · 1435 阅读 · 0 评论 -
人民币金额打印
#coding:utf-8#数字大写对应表bigFormat={'0':u'零','1':u"壹",'2':u"贰",'3':u'叁','4':u'肆','5':u'伍','6':u'陆','7':u'柒','8':u'捌','9':u'玖'}unit =[u'仟',u'佰',u'拾','']#测试数据列表digits=[1987654321,87654321,80014321,8原创 2013-12-06 12:38:38 · 1245 阅读 · 0 评论 -
最小公倍数
给你两个正整数a和b, 输出它们的最小公倍数#coding:utf-8def main(a,b): c=max(a,b) while 1: if c%a==0 and c%b==0: return c else: c+=1if __name__ == '__main__':原创 2013-12-02 11:19:58 · 709 阅读 · 0 评论 -
最大公约数
给你两个正整数a和b, 输出它们的最大公约数。#coding:utf-8def main(a,b): c= min(a,b) for i in range(c,0,-1): if b%i==0 and a %i==0: return iif __name__=='__main__': print main(1,5) #原创 2013-12-02 11:00:16 · 1116 阅读 · 0 评论 -
获取数字特定因子元素的个数
#coding:utf-8'''获取 数字n由2组成的个数,如8=2*2*2,由3个2组成。也可以改变因子元素2,获取相应的因子个数'''m=0def main(n): global m if n%2==0: m+=1 main(n/2) if n/2==1: return 1if __nam原创 2013-12-02 16:57:30 · 938 阅读 · 0 评论 -
输出 结尾0的个数
这是网上的一道题目,内容如下:描述: 给你一个正整数列表 L, 如 L=[2,8,3,50], 输出L内所有数字的乘积末尾0的个数,如样例L的结果为2.(提示:不要直接相乘,数字很多,可能溢出)#coding:utf-8'''思路:由于2x5=10,分别输出由2和5组成的列表元素乘积,得到2、5的个数,最小的个数即是末尾0的个数'''# m、k分别计算乘积式中2、5的个数原创 2013-12-02 16:46:21 · 1100 阅读 · 0 评论 -
去除文件中的重复元素后写入文件
去除文件中的重复元素后写入文件#coding:utf-8import fileinputimport re#只包含单行的数据文件f=open(r'D:\snowDocument\excludes.txt','w')#匹配行内容中包含 '-'的字符p2=re.compile('-')def main(): l=[] for line in file原创 2013-12-03 11:21:43 · 2106 阅读 · 0 评论 -
fileinput模块获取文件的总行数
#coding:utf-8import fileinputdef main(): lineno=0 for line in fileinput.input(r'G:\\subprocess.log'): lineno=fileinput.filelineno() return linenoif __name__ == '__main__':原创 2013-12-04 18:19:27 · 1485 阅读 · 0 评论 -
使用random模块,生成动态随机密码
生成动态随机密码:import random,string'''length -- 指定密码的长度chars -- 指定密码有字母、数字、下划线及@、#组成times -- 指定一次生成的密码个数'''chars = string.lowercase+string.uppercase+''.join(map(str,range(10)))+'_@#'def getpass原创 2013-12-04 17:23:46 · 1417 阅读 · 0 评论 -
过滤(s='good ' if m%2==0 else 'bad')
#coding:utf-8def main(m): '''这个方法主要是用于过滤奇偶数, 如果是偶数,输出good,否则输出bad''' s='good ' if m%2==0 else 'bad' print sif __name__ == '__main__': main(4) # good main(5) # bad原创 2013-12-27 13:45:33 · 968 阅读 · 0 评论 -
yield生成器对象返回Fiabs元素
使用生成器:#coding:utf-8--使用生成器,返回小于n的元素值,myield函数返回一个生成器对象def myyiled(n): a,b=0,1 while a<n: yield a a,b=a+b,a--使用生成器,返回前n项的元素值,my函数返回一个生成器对象def my(n): a,b=0,1 for i原创 2014-01-13 10:28:34 · 715 阅读 · 0 评论 -
fileinput模块
fileinput.input (files=None, inplace=False, backup='', bufsize=0, mode='r', openhook=None)参数files :文件的路径列表inplace:是否将标准输出(print方法)的结果写回文件backup : 备份文件的扩展名,只指定扩展名。bufsize :缓冲区大小mode :读写转载 2013-08-15 17:18:15 · 1156 阅读 · 0 评论 -
获取指定扩展名的文件
#以获取mp3文件为例import osname=r"E:\KwDownloadx\song"tag=['.mp3']def getmp3(dirname,label): mp3list = [os.path.normcase(i) for i in os.listdir(dirname)] print [ os.pa原创 2013-05-14 16:06:00 · 777 阅读 · 0 评论 -
修改xml中的字段值
xml内容如下: 将userName的值Jane修改为SAM:#coding:utf-8import xml.etree.ElementTree as ETimport sysdef main(): # 加载并且解析这个 XML,也可以使用 tree = ET.ElementTree(file='doc1.xml')将整个 XML原创 2014-03-13 12:00:35 · 2913 阅读 · 0 评论 -
输出对象的备份、还原
#coding:utf-8import sysf=open('sys_midware.txt','wr')#保存输出对象old_stdout=sys.stdout#重定向输出sys.stdout=fsys.stdout.write("should in file f")#还原输出sys.stdout=old_stdoutprint 'Re原创 2014-03-28 11:47:50 · 675 阅读 · 0 评论 -
定时执行备份
CentOS 操作系统1.编写备份程序2.使用crontab命令,定时执行备份程序步骤一:编写备份文件bak.py:#coding:utf-8import osimport timesource=["/root/","a.py"]#目标目录targetdir="/root/backup/"#目标目录下的当天日期today = targetdi原创 2014-03-19 14:34:34 · 745 阅读 · 0 评论 -
统计相同行发生的次数,及各项值的和
data2.txt 文件内容:BgwBankConfigFacadeImpl.queryPayBankList 3BgwBankConfigFacadeImpl.queryCardBinInfo 3BgwBankConfigFacadeImpl.queryCardBinInfo 1BgwBankConfigFacadeImpl.queryPayBankList 4BgwBank转载 2014-03-21 16:21:34 · 981 阅读 · 0 评论 -
判断元素出现的次数、总和
#判断元素出现的次数、总和#coding:utf-8d=[('a', 2), ('a', 1), ('b', 2), ('b', 5), ('c', 1), ('d', 5)]def main(): r ={} for a,b in d: t =r.get(a,{}) t['times']=t.get('times',0)+1转载 2014-03-21 15:52:24 · 804 阅读 · 0 评论 -
使用python解析json文件
更多的信息,可以参考python内部的json文档:python>>> help(json)或者官方文档:http://docs.python.org/library/json.html#module-json下面给出一个使用python解析json的简单例子:#!/usr/bin/pythonimport json#Function:Analyze j转载 2014-03-21 18:17:33 · 1257 阅读 · 0 评论 -
排除特定的内容
请教一下:排除‘GGG’这种情况的python正则该怎么写呢,是 ^{[G]{3}} 这样写吗?#coding:utf-8import rel=['GGG','AGG','gg','aGGgA']def main(): p = re.compile(r'G{3}') for i in l: if p.search(i): conti原创 2015-10-03 16:11:30 · 574 阅读 · 0 评论 -
classmethod demo
类方法:#coding:utf-8class Times(object): factor = 1 def tell(self): return 'A' @classmethod def mul(cls,x): return cls.factor * x,cls().tell()class Two(Times): fac原创 2015-10-03 16:15:47 · 553 阅读 · 0 评论 -
使用os.walk()方法
递归遍历给定目录下的内容。(路径、路径下的文件夹、路径下的文件)其中第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件.dirpath是一个string,代表目录的路径,dirnames是一个list,包含了dirpath下所有子目录的名字,filenames是一个list,包含了非目录文件的名字.这些名字不包含路径信息,如果需要得到全路径,需要使用原创 2013-08-14 10:52:03 · 9177 阅读 · 1 评论 -
输出包含共同元素的变量值
输出包含共同元素的变量值#coding:utf-8def main(): a1=1 a2=2 a3=3 for i in xrange(1,4): print eval("a%d" % i) # 或:exec('print a%d' %i)if __name__ == '__main__':原创 2014-03-11 13:55:41 · 670 阅读 · 0 评论 -
commands 模块
commands 模块包含一些用于执行外部命令的函数. Example 3-7展示了这个模块.3.5.0.1. Example 3-7. 使用 commands 模块import commandsstat, output = commands.getstatusoutput("ls -lR")print "status", "=>", statprint "output",转载 2014-01-13 14:27:11 · 1307 阅读 · 0 评论 -
python发送各类邮件的主要方法
python中email模块使得处理邮件变得比较简单,今天着重学习了一下发送邮件的具体做法,这里写写自己的的心得,也请高手给些指点。 一、相关模块介绍 发送邮件主要用到了smtplib和email两个模块,这里首先就两个模块进行一下简单的介绍: 1、smtplib模块 smtplib.SMTP([host[, port[, local_hostname[转载 2014-01-14 14:52:10 · 1106 阅读 · 0 评论 -
classmethod类方法
类方法可以直接使用类名调用;否则只能使用实例进行调用方法#coding:utf-8'''类方法可以直接使用类名调用;否则只能使用实例进行调用方法'''class c: def __init__(self): self._a=1 @classmethod def t(self): print self def t2(sel原创 2014-02-07 10:36:26 · 830 阅读 · 0 评论 -
#小练习 输出模块中方法及其docstring
divide into python 中例子,输出模块的函数及docstring文档内容。以下例子是通过调用getdoc模块中的main方法,输出imp_main模块中方法及docstringimp_main.py :#coding:utf-8#运行此模块时,调用此函数def runself(): 'execute this method when run thi原创 2013-11-05 18:17:32 · 1032 阅读 · 0 评论