【发布时间】:2020-10-03 17:39:16
【问题描述】:
我是新来的编程新手(我只编程了 2 周)。有没有人对如何测试不带参数的函数有任何建议。我已经测试了带参数的函数,但没有测试不带参数的函数。
在测试函数中,我尝试在 valid_letter() 函数中传递一个预期为字母“a”的参数。但它给出了'a'未定义的错误。
def valid_letter():
'''Function valid_letter
Parameters None
continuously asks for a valid letter
if invalid data is provided
'''
while True:
column = input("What column do you wish to select from a to g? ")
if column != "a" and column != "b" and\
column != "c" and column != "d" and\
column != "e" and column != "f" and\
column != "g" and column != "h":
print("Your input is invalid")
continue
else:
return column
break
def check_valid_column(expect):
answer = valid_letter()
print("Input: {}".format(answer))
print("Expected: {}, Actual {}".format(expect, answer))
def main():
check_valid_column(a)
main()
【问题讨论】:
-
欢迎来到 SO!你能给我们提供预期的输出吗?并可能澄清你想在这里做什么?
-
我猜你打算做
check_valid_column("a"),所以使用字符“a”,而不是变量a。 -
您可以将
if子句重写为if column not in ["a", "b", "c", "d", "e", "f", "g", "h"]:。此外,在return column之后不需要break。在这种情况下不需要continue,因为它已经隐式发生了。 -
@trincot 谢谢。这就是它不起作用的原因,我没有将字母作为字符串传递给它。
标签: python