python代码不工作-反转字符串



我试着做一个函数,给出一个单词,反转它,然后看看它是否正确地反转了它。如果是,则打印&;TEST passed &;但是我不能把最后一部分工作。代码是:

def back_it_up(any_word):
reverse = any_word[::-1]
print(any_word)
print(reverse)
test = reverse[::-1]


if any_word == test:
return True
else:
return False
def test_back_it_up():
print("")
print("Back It Up Unit Test...")
print("")
if back_it_up("book") == "koob":
print("TEST PASSED")
else:
print("TEST FAILED")
if back_it_up("college") == "egelloc":
print("TEST PASSED")
else:
print("TEST FAILED")
if back_it_up("dog") == "god":
print("TEST PASSED")
else:
print("TEST FAILED")
if back_it_up("code") == "edoc":
print("TEST PASSED")
else:
print("TEST FAILED")
if back_it_up("") == "Empty String":
print("TEST PASSED")
else:
print("TEST FAILED")

你的代码有几个问题…

首先,反向函数返回的不是字符串而是布尔值。这将使单元测试失败,因为您试图检查返回值是否为反转字符串。一个简单的解决方案是将函数更改为:

def back_it_up(any_word: str) -> str:
reverse = any_word[::-1]
print(any_word)
print(reverse)
return reverse

第二,这个改变将解决所有的测试用例,除了最后一个。发生这种情况是因为您试图将空字符串""与具有内容"Empty String"的字符串进行比较。这可以通过以下两种方式解决:

  1. 将测试套件上的"Empty String"替换为""
  2. 在你的反向函数中包含一个返回条件,当输入为空时获得该字符串。

简单地替换所有表示== 'string'== True的行。在此之后,您的代码成功运行。

def back_it_up(any_word):
reverse = any_word[::-1]
print(any_word)
print(reverse)
test = reverse[::-1]
if any_word == test:
return True
else:
return False

def test_back_it_up():
print("")
print("Back It Up Unit Test...")
print("")
if back_it_up("book") == True:
print("TEST PASSED")
else:
print("TEST FAILED")
if back_it_up("college") == True:
print("TEST PASSED")
else:
print("TEST FAILED")
if back_it_up("dog") == True:
print("TEST PASSED")
else:
print("TEST FAILED")
if back_it_up("code") == True:
print("TEST PASSED")
else:
print("TEST FAILED")
if back_it_up("") == True:
print("TEST PASSED")
else:
print("TEST FAILED")
test_back_it_up()

注意:我没有完全理解if back_it_up("") == "Empty String":意味着什么,所以我就把它True。如果需要,可以进行编辑。输出:


Back It Up Unit Test...
book
koob
TEST PASSED
college
egelloc
TEST PASSED
dog
god
TEST PASSED
code
edoc
TEST PASSED

TEST PASSED

最新更新