Python—有人能解释一下为什么我总是得到正确的输出,但它总是说;无”;在它下面

Python—有人能解释一下为什么我总是得到正确的输出,但它总是说;无”;在它下面,python,Python,尝试在第一个代码框中测试我的函数,我不断得到我想要的正确输出,但由于某种原因,它下面显示“无”,正如您在第二个代码框中看到的,然而,Colab没有指示任何错误,但我必须测试它的第三个代码框中的程序不断给我错误消息-“有些地方不太正确:请尝试检查此处的所有测试用例,并确保您的函数适用于所有测试用例。”帮助 我正在用这个代码测试它 # Run this cell to get feedback on your answer def test_speeding_ticket(answer):

尝试在第一个代码框中测试我的函数,我不断得到我想要的正确输出,但由于某种原因,它下面显示“无”,正如您在第二个代码框中看到的,然而,Colab没有指示任何错误,但我必须测试它的第三个代码框中的程序不断给我错误消息-“有些地方不太正确:请尝试检查此处的所有测试用例,并确保您的函数适用于所有测试用例。”帮助

我正在用这个代码测试它

    # 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