2017-09-29 21 views
0

私は学校のための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 

テストに合格しているが、私は本当にdoctestではユニコードのHex文字を表示せずにこれらの文字を読みたい:ここ

そして

はdoctestの、問題です。

どうすればこの問題を解決できますか?

PS:私の先生がIDE Thonnyを使用しているので、私は自然に彼に従いました。私の仲間が私を責めないことを知っています。私の仲間はそれ以上検索しなかったので、 'e' ')。

+0

どこで実行しますか? PycharmのPython2/3のコンソールで試してみましたが、すべての文字はUnicodeコードではなく正しく表示されています。 – AndMar

+0

テストやdoctestランナーの動作に問題はありません。これらのグリフを正しくレンダリングする端末で実行するだけで済みます。私は "IDE Thonny"について聞いたことがありませんが、それはその事実だと思います。 – wim

+0

@ AndMar 先生が使用しているIDEで実行します:Thonny、コンソールで動作するようですが、私はさらに試しませんでした。私は今日私が時間があれば、私は考えるとしようとします。 (Sry、私は実際に私の問題についてもっと詳しく教えても、私は以下の "答え"の中にお返事します^^) – Sidimoth

答えて

0

実際、Thonnyは問題の一部です。私がThonnyでアクセントのある文章を印刷しようとすると、doctestはそれを試しても、テストに合格しても、彼はまだエラーを出力しますが、pythonはまだ良い文章を印刷します。

私は多くのことをテストしました。私のUbuntu Laptopでは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"を表示していました。私は3.xの代わりにPython 2.xに関するドキュメントを見つけたと思います。

私はあなたに私の問題についてのより多くの情報を与えた場合、または解決策があれば、doctestがこれを行う理由を知ることができます。とにかく、私が言ったように、私の先生はこれを誤りと見なさないので、私が期限をもって解決しなければならない重要な問題ではなく、私が焦点を当てている問題です。

+0

FYIこれはバグとしてhttps://bitbucket.org/plas/thonnyで追跡されています/ issues/352/problem-with-non-ascii-chars-doctest – bugmenot123

関連する問題