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

来源:互联网 发布:v百科网络流行语 编辑:程序博客网 时间:2024/05/16 11:58

题目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!"

原创粉丝点击