笨方法学python3习题21_【图片】笨方法学python3习题41,这是什么问题?【pyhton吧】_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

代码如下:

import random

from urllib.request import urlopen

import sys

WORD_URL = "http://learncodethehardway.prg/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 *** parans.",

"class %%%(object):\n\tdef *** (self, @@@)":

"class %%% has-a function *** that tales self and @@@params.",

"***.*** = %%%()":

"Set *** to an instance of class %%%.",

"***.***(@@@)":

"From *** get the *** function, call it with params self, @@@.",

"***.*** = '***'":

"From *** get the *** attribute and set it to '***'."

}

# do they want to drill phrases first

if len(sys.argv) == 2 and sys.argv[1] == "english":

PHRASE_FIRST = True

else:

PHRASE_FIRST = False

# load up the words from the website

for word in urlopen(WORD_URL).readlines():

WORDS.append(str(word.strip(), encoding="utf-8"))

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 names

for word in class_names:

result = result.teplace("%%%", word, 1)

# fake other names

for word in other_names:

result = resur.replace("***", word, 1)

# fake parameter lists

for word in param_names:

result = result.replace("@@@", word, 1)

results.append(result)

return results

# keep going until they hit CTRL-D

try:

while True:

snippets = list(PHRASES.keys())

random.shuffle(snippets)

for snippet in snippets:

phrase = PHRASES[snippet]

question, answer = convert(snippet, phrase)

if PHRASE_FIRST:

question, answer = answer, question

print(question)

input(">")

print("ANSWER: {0}\n\n".format(answer))

except EOFError:

print("\nBye")

运行结果:

25ae6e15893c149eaaf62d75580519bb.png

febdd8eb8a7ff97f6d69806f594ed713.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值