Learn Python The Hard Way ex41中的程序
来源:互联网 发布:js 将数组变为字符串 编辑:程序博客网 时间:2024/06/08 10:12
import randomfrom urllib import urlopenimport sysWORD_URL = "http://learncodethehardway.org/words.txt"WORDS = []PHRASES = {"class %%%(%%%):":"Make a class named %%% that is-a %%%.","class %%%(object):\n\tdef __init__(self, ***)":"class %%% has-a __init__ that takes self and *** parameters.","class %%%(object):\n\tdef ***(self, @@@)":"class %%% has-a function named *** that takes self and @@@ parameters.","*** = %%%()":"Set *** to an instance of class %%%.","***.***(@@@)":"From *** get the *** function, and call it with parameters self, @@@.","***.*** = '***'":"From *** get the *** attribute and set it to '***'."}#do they want to drill phrases firstPHRASE_FIRST = Falseif len(sys.argv) == 2 and sys.argv[1] == "english":PHRASE_FIRST = True# load up the words from the websitefor word in urlopen(WORD_URL).readlines():WORDS.append(word.strip())def convert(snippet, phrase):class_names = [w.capitalize() for w in random.sample(WORDS, snippet.count("%%%"))]other_names = random.sample(WORDS, snippet.count("***"))results = []param_names = []for i in range(0, snippet.count("@@@")):param_count = random.randint(1,3)param_names.append(', '.join(random.sample(WORDS, param_count)))for sentence in snippet, phrase:result = sentence[:]#fake class namesfor word in class_names:result = result.replace("%%%",word,1)#fake other_namesfor word in other_names:result = result.replace("***", word, 1)#fake parameter listsfor word in param_names:result = result.replace("@@@", word, 1)results.append(result)return results# keep going until they hit CTRL-Dtry:while True:snippets = PHRASES.keys()random.shuffle(snippets)for snippet in snippets:phrase = PHRASES[snippet]question, answer = convert(snippet, phrase)if PHRASE_FIRST:question, answer = answer, questionprint questionraw_input("> ")print "ANSWER: %s\n\n" % answerexcept EOFError:print "\nBye"
这个程序的作用是在网一个网址获取一些单词,用这些单词命名程序的代码块和其中的元素。不管你在>后输入什么,程序都会将该代码块的含义及作用打印出来。
当你按Ctrl+Z的时候,程序退出并打印Bye
运行如下:
0 0
- Learn Python The Hard Way ex41中的程序
- Learn Python the Hard Way Ex41记录
- 【python练习】《learn python the hard way》ex41 opp_test.py
- 【Python】Learn Python the hard way, ex41 面向对象术语练习
- Learn Python The Hard Way
- Learn Python The Hard Way
- Learn Python the Hard Way ex48
- 学《learn python the hard way》(3)
- learn python the hard way 的ex48
- Learn Python The Hard Way-Ecercise1~5
- Learn Python The Hard Way-Ecercise6~10
- Learn Python The Hard Way-Ecercise11~15
- Learn Python The Hard Way-Ecercise16~20
- Learn Python The Hard Way-Ecercise21~25
- Learn Python The Hard Way-Ecercise26~30
- Learn Python The Hard Way-Ecercise31~35
- Learn Python The Hard Way-Ecercise36~40
- Learn Python The Hard Way exercise 42
- git:将某个commit或其中某个文件修改提取出来
- Linux和Windows生成系统时间命名的文件
- oracle查看dbid
- javascript判断输入是否为空
- 10019---浅谈UML的概念和模型之UML九种图
- Learn Python The Hard Way ex41中的程序
- Android 进阶 教你打造 Android 中的 IOC 框架 【ViewInject】 (下)
- View too large to fit into drawing cache when calling getDrawingCache()
- subversion, 在windows上架设svn server,并创建repository
- windows下安装rabbitmq
- layoutSubviews总结
- UUId与keychain
- PCL库和C++2011兼容问题
- 锐捷认证成功但是无法上网的问题