学习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!"
- 学习python之路---python小算法总结(七)
- 学习python之路---python小算法总结(一)
- 学习python之路---python小算法总结(二)
- 学习python之路---python小算法总结(三)
- 学习python之路---python小算法总结(四)
- 学习python之路---python小算法总结(六)
- 学习python之路---python小算法总结(五)
- Python学习之路七---进阶知识
- python学习之路七--函数
- Python学习日志(七)之输入输出
- Python算法之快排学习总结
- 学习Python (七)
- python学习笔记之(七)
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- 机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)
- I am back
- Linux 汇编语言开发指南
- [leetcode] first missing positive
- 新手看招 Unix和Linux下C语言学习指南
- hibernate缓存机制
- 学习python之路---python小算法总结(七)
- 黑马程序员__IO流
- AndroidManifest中original-package标签
- 读取手机通讯录
- Tomcat 发布多个web项目(多个域名,同一ip)
- GPS和A-GSP工作原理 两者并用其乐无穷
- java获取mac地址
- 如何编译Linux内核
- 多线程通信