我需要测试一个函数,与下面类似,以检查该函数的提示和输出。正如你所看到的,有一些分支。我的理想目标是能够指定我想在函数中尝试的值,同时还可以捕获所有输出文本。
def prompt():
guess = input("guess a letter: ")
return(guess)
def testme():
i = 1
vocab = ['a', 'b', 'c','d', 'e', 'f']
import random
correct = random.choice(vocab)
while i < 4:
i = i + 1
guess = prompt()
if correct == guess:
print("Well done!")
i = 100
else:
print("Wrong!n")
testme()
我的需求:
值得注意的是,您可以看到我的函数test
故意不接受任何参数,而是一个用户必须与提示交互的函数。我需要自动化这一部分,并捕捉函数的反应(发送到控制台的消息(,直到函数结束。
考虑到用户可以提供多个输入,我试图避免手动运行该函数,以查看该函数的行为是否符合我的预期。
您只需接受一个参数并将列表传递给它:
def testme(vocab):
i = 1
import random
correct = random.choice(vocab)
while i < 4:
i = i + 1
guess = prompt()
if correct == guess:
print("Well done!")
i = 100
else:
print("Wrong!n")
并称之为:
testme(['a','b','c','d','e','f'])
您还可以从用户那里获取逗号分隔的值,将它们拆分并转换为列表,然后传递给函数。
捕获输出是什么意思?是否保存用户键入的内容?你想知道猜了多少次吗?我想你可以看看for循环和break语句:(它们会让你的工作更容易
def prompt():
guess = input("guess a letter: ")
return(guess)
def testme(vocab):
import random
correct = random.choice(vocab)
for i in range(4):
guess = prompt()
if correct == guess:
print("Well done!")
break
else:
print("Wrong!n")
return my_list_of_outputs
testme(['a','b','c','d','e','f'])