Python:doctest口音问题
我是一名Python初学者,对于学校而言,我有点不可思议。我的老师要我写一个函数,返回一个带有口音的句子,“print()”用口音向我展示好的字符,但是doctest没有。Python:doctest口音问题
这里是我的代码:
def test() :
"""
>>> test()
à - â - ä - é - è - ê - ë - ï - î - ô - ö - ù - û - ü - ÿ - ç
"""
print("à - â - ä - é - è - ê - ë - ï - î - ô - ö - ù - û - ü - ÿ - ç")
import doctest
doctest.testmod(optionflags=doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS, verbose = True)
正如我所说的,打印不告诉我正确的字符。
这里是文档测试,该问题:
Trying:
test()
Expecting:
\xe0 - \xe2 - \xe4 - \xe9 - \xe8 - \xea - \xeb - \xef - \xee - \xf4 - \xf6 - \xf9 - \xfb - \xfc - \xff - \xe7
ok
测试通过,没有失败,但我真正想要的文档测试,以不显示Unicode的十六进制字符阅读这些字符。
我该如何解决这个问题?我的老师使用IDE Thonny,所以我自然而然地跟着他,我知道他不会责怪我(我们,因为我的队友没有进一步搜索,只是将'é'改为'e' “)。
因此,Thonny的确是问题的一部分。如果我尝试在Thonny中打印带有口音的句子,那么doctest会尝试,即使他通过了测试,他仍然会打印一个错误,但是python仍然会打印出好句子。
所以我测试了很多东西,在我的Ubuntu笔记本电脑上,用Python 3.6,我注意到如果我的print()打印的不止是一个句子,那就出现了问题。
这是测试代码:
def test():
"""
>>> test()
é é é
"""
print('é é é')
他打印:
Trying:
test()
Expecting:
é é é
ok
1 items had no tests:
__main__
1 items passed all tests:
1 tests in __main__.test
1 tests in 2 items.
1 passed and 0 failed.
Test passed.
如果我在打印添加变量,这是我所:
def test(var):
"""
>>> test(5)
é é é 5
"""
print('é é é', var)
doctest:
Trying:
test(5)
Expecting:
é é é 5
**********************************************************************
File "test.py", line 5, in __main__.test
Failed example:
test(5)
Expected:
é é é 5
Got:
('\xc3\xa9 \xc3\xa9 \xc3\xa9', 5)
1 items had no tests:
__main__
**********************************************************************
1 items had failures:
1 of 1 in __main__.test
1 tests in 2 items.
0 passed and 1 failed.
***Test Failed*** 1 failures.
我有这种感觉,我在Python中滥用打印,我真的不知道为什么,我在互联网上搜索并找到一些解决方案,如“print(”%s“,name)”来打印一个变量在打印中,但是当我尝试它时显示“%s”而不是用字符串替换它。我想我找到了关于Python 2.x而不是3.x的文档。因此,如果我向您提供了有关我的问题的更多信息,或者如果您有解决方案,我很乐意了解为什么doctest会这样做。无论如何,正如我所说的,我的老师不会把这算作一个错误,所以这不是一个重要的问题,我必须在截止日期前解决,这只是我关注的一个问题。
仅供参考这个问题在https://bitbucket.org/plas/thonny /问题/ 352 /问题与 - 非ASCII的字符,和文档测试 – bugmenot123
你在哪里运行它?我在Pycharm的Python2/3的控制台上尝试过,并且所有字符都正确显示,而不是Unicode代码。 – AndMar
这里的测试或doctest跑步者的行为没有任何问题。你只需要在终端正确渲染这些字形的情况下运行它。我从来没有听说过“IDE Thonny”,但我认为这是事情的错。 – wim
@ AndMar 我在老师使用的IDE中运行它:Thonny,在控制台中似乎工作,但我没有尝试更多。如果我有时间,我会在今天尝试。 (Sry,我在下面的“答案”中回答了你们两个人,即使我实际上告诉我更多关于我的问题^^) – Sidimoth