使用来自用户的多个原始输入测试功能



我需要测试一个函数,与下面类似,以检查该函数的提示和输出。正如你所看到的,有一些分支。我的理想目标是能够指定我想在函数中尝试的值,同时还可以捕获所有输出文本。

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'])

最新更新