您的位置:首页 > 编程语言 > Python开发

学习python之路---python小算法总结(七)

2013-03-18 16:31 309 查看
题目31:从一个文件中选出使用频率最多的30个单词

from time import time

from operator import itemgetter

def test():

count = {}

for line in open("test.txt"):

for word in line.split():

count[word] = 1 + count.get(word, 0)

print sorted(count.iteritems(), key=itemgetter(1), reverse=True)[0:30]

if __name__ == "__main__":

t1 = time()

test()

print time()-t1

题目32:把字符串反转

>>>astring=['sky','world','hello']

>>> revchars=astring[::-1]

>>> print revchars

['hello', 'world', 'sky']

按照单词翻转字符串:

>>> str="i love you"

>>> revwords=str.split()

>>> revwords.reverse()

>>> print revwords

['you', 'love', 'i']

>>>revwords=''.join(revwords)

>>> print revwords

Youlovei

如果想逐词反转但又不同时不改变原先的空格,可以用正则表达式来分割原字符串:

>>> import re

>>>revwords=re.split(r'(\s+)',str)

>>> revwords.reverse()

>>> revwords= ''.join(revwords)

>>> print revwords

you love i

题目33:遍历列表求和

方法1:

>>>mysum=[1,2,3,4,5]

>>>sum=0

>>>for i in range(len(mysum)):

sum+=mysum[i]

i+=1

>>>print sum

15

方法2:

>>> mysum=[1,2,3,4,5]

>>> sum=0

>>> for x in mysum:

sum+=x

>>> print sum

15

方法3:

>>> mysum=[1,2,3,4,5]

>>> sum=0

>>> while mysum:

sum+=mysum[0]

mysum=mysum[1:]

>>> sum

15

题目34:字符串排序

一、python中的字符串类型是不允许直接改变元素的。必须先把要排序的字符串放在容器里,如list。

二、python中的list容器的sort()函数没返回值。

>>> s="string"

>>> l=list(s)

>>> l.sort()

>>> s="".join(l)

>>> s

'ginrst'

题目35:以__name__进行单元测试

>>> def minmax(test,*args):

res=args[0]

forarg in args[1:]:

iftest(arg,res):

res=arg

returnres

>>> def lessthan(x,y): return x<y

>>> def grtrthan(x,y): return x>y

>>> if __name__=='__main__':

printminmax(lessthan,4,2,1,5,6,3)

printminmax(grtrthan,4,2,1,5,6,3)

运行结果:

1

6

题目36:类代码编写基础

实例一:基类的构造

>>> class FirstClass:

defsetdata(self,value):

self.data=value

defdisplay(self):

printself.data

>>> x=FirstClass()

>>> y=FirstClass()

>>> x.setdata("king")

>>> y.setdata(3.1415)

>>> x.display()

king

>>> y.display()

3.1415

实例二:类的继承

>>> class SecondClass(FirstClass):

defdisplay(self):

print'current value ="%s"'%self.data

>>> z=SecondClass()

>>> z.setdata(42)

>>> z.display()

current value ="42"

备注:如果FirstClass是写在模块文件内,而不是在交互模式下输入的,就可以将其导入,例如:

From modulename import FirstClass

Class SecondClass(FirstClass):

Def display(self):……..

或者等效写法如下:

Import modulename

Class SecondClass(modulename.FirstClass):

Defdisplay(self):………

实例三类的运算符重载

>>> class ThirdClass(SecondClass):

def__init__(self,value):

self.data=value

def__add__(self,other):

returnThirdClass(self.data+other)

def__str__(self):

return'[ThirdClass:%s]'% self.data

defmul(self,other):

self.data*=other

>>> a=ThirdClass('abc')

>>> a.dispaly()

current value ="abc"

>>> print a

[ThirdClass:abc]

>>> b=a+'xyz'

>>> b.dispaly()

current value ="abcxyz"

>>> print b

[ThirdClass:abcxyz]

>>> a.mul(3)

>>> print a

[ThirdClass:abcabcabc]

题目37:猜字小游戏

print "welcome"

g=input(" guess the name:")

guess=int(g)

if guess==5:

print "you win!"

else:

print "you lose!"

print "game over!"

完美版猜字小游戏

from random import randint

secret=randint(1,10)

print "welcome"

guess=0

while guess!=secret:

g=input("guess the number:")

guess=int(g)

ifguess==secret:

print "you win!"

else:

if guess>secret:

print "too high"

else:

print "too low"

print "game over!"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: