Python—有人能解释一下为什么我总是得到正确的输出,但它总是说;无”;在它下面
尝试在第一个代码框中测试我的函数,我不断得到我想要的正确输出,但由于某种原因,它下面显示“无”,正如您在第二个代码框中看到的,然而,Colab没有指示任何错误,但我必须测试它的第三个代码框中的程序不断给我错误消息-“有些地方不太正确:请尝试检查此处的所有测试用例,并确保您的函数适用于所有测试用例。”帮助 我正在用这个代码测试它Python—有人能解释一下为什么我总是得到正确的输出,但它总是说;无”;在它下面,python,Python,尝试在第一个代码框中测试我的函数,我不断得到我想要的正确输出,但由于某种原因,它下面显示“无”,正如您在第二个代码框中看到的,然而,Colab没有指示任何错误,但我必须测试它的第三个代码框中的程序不断给我错误消息-“有些地方不太正确:请尝试检查此处的所有测试用例,并确保您的函数适用于所有测试用例。”帮助 我正在用这个代码测试它 # Run this cell to get feedback on your answer def test_speeding_ticket(answer):
# Run this cell to get feedback on your answer
def test_speeding_ticket(answer):
student_score = 1
cases = [
(35, 55, "ok"),
(56, 55, "grace"),
(62, 55, "grace"),
(73, 55, "ticket"),
(56, 35, "ticket"),
(34, 35, "ok"),
(42, 35, "grace"),
]
for case in cases:
ref = case[2]
if answer(case[0], case[1]) != ref:
student_score = 0
if student_score == 1:
print("Correct, great job!")
else:
print("Something's not quite right: try checking all the test cases here and make sure your
function works for all of them")
test_speeding_ticket(speeding_ticket)
您使用的是
print
,它不会返回它打印的内容,而是返回None
。因此,当您打印函数(\u answer
)的结果时,也就是None
。将函数更改为:
def speeding_ticket(speed, limit):
if speed <= limit:
_answer = "ok" # No print
elif speed >= limit and speed <= limit + 9:
_answer = "grace" # No print
else:
_answer = "ticket" # No print
return _answer
def超速罚单(速度、限制):
如果速度=限制和速度,问题在于print
返回None
。将print
赋值给变量将赋值None
def超速罚单(速度、限制):
如果speed=limit和speed@python\u user:他们真的应该让他们的函数返回正确的东西,而不是在内部打印。谢谢!所以本质上我不能真正将print()函数分配给变量?所以本质上我不能真正分配print()函数到一个变量?
这应该做什么?要么你打印
,要么你返回
。或者两者都做。但是不要返回打印
@quiteplatypus 123:我的意思是,你可以;毕竟你做了。只是它返回无
,所以它没有用处。如果你想打印
并赋值,只需赋值,then打印您分配给它的内容。
# Run this cell to get feedback on your answer
def test_speeding_ticket(answer):
student_score = 1
cases = [
(35, 55, "ok"),
(56, 55, "grace"),
(62, 55, "grace"),
(73, 55, "ticket"),
(56, 35, "ticket"),
(34, 35, "ok"),
(42, 35, "grace"),
]
for case in cases:
ref = case[2]
if answer(case[0], case[1]) != ref:
student_score = 0
if student_score == 1:
print("Correct, great job!")
else:
print("Something's not quite right: try checking all the test cases here and make sure your
function works for all of them")
test_speeding_ticket(speeding_ticket)
def speeding_ticket(speed, limit):
if speed <= limit:
_answer = "ok" # No print
elif speed >= limit and speed <= limit + 9:
_answer = "grace" # No print
else:
_answer = "ticket" # No print
return _answer