【发布时间】:2021-11-25 08:36:29
【问题描述】:
尝试对句子进行记忆测试。
给定一个句子,代码随机选择 3 个单词并将它们填空。它还会打印出“答案”。
The quick brown fox jumps over the lazy dog. # original sentence
工作:
import string, re
from random import sample
original = 'The quick brown fox jumps over the lazy dog.'
o_list = original.split()
picked = sorted(sample(range(1,len(o_list)), 3))
new_sentence = []
for idx, word in enumerate(o_list):
if idx in picked:
word = " _____ "
else:
word = word
new_sentence.append(word)
new_sentence = " ".join(new_sentence)
print (new_sentence)
answers = [str(idx+1) + '.' + o_list[w] + ' ' for idx, w in enumerate(picked)]
print (''.join(answers))
输出:
The quick brown _____ jumps over _____ lazy _____ # question sentence
1.fox 2.the 3.dog.
我想给空格编号,比如:
The quick brown 1. _____ jumps over 2. _____ lazy 3. _____
尝试了正则表达式的方式,但它只将它们替换为空白:
new_sentence = re.sub(r' _____ ', ' ', new_sentence)
实现它的最佳方法是什么?谢谢!
【问题讨论】:
-
怎么样
word = str(idx+1) + ". _____ " -
@furas 我认为这行不通,因为您将打印出“您所在的单词”(例如,如果您替换的第一个单词是索引 4 中的单词,则数字将输出 4,而不是预期的数字 1)。
-
@DanteCulaciati 你是对的 - 我没有检查所有代码是如何工作的。