2011-08-19 18 views
7

Tak więc, kiedy próbuję wydrukować pomoc/informacje o funkcjach Pythona function.__doc__, wyjście konsoli zamiast drukowania nowej linii, gdy \n występuje w ciągu dokumentów, drukuje \n. Czy ktoś może mi pomóc w wyłączaniu/pomaganiu z tym?Python znak nowej linii w konsoli

To moje wyjście:

'divmod(x, y) -> (div, mod)\n\nReturn the tuple ((x-x%y)/y, x%y). Invariant: div*y + mod == x.' 

Co chciałbym być wyjście:

'divmod(x, y) -> (div, mod) 

    Return the tuple ((x-x%y)/y, x%y). Invariant: div*y + mod == x.' 

P.S: Próbowałem to na OS X, Ubuntu z Pythonem 2.7.

Odpowiedz

16

Wygląda, jakbyś sprawdził obiekt w powłoce interaktywnej, a nie wydrukował go. Jeśli masz na myśli drukowanie, napisz to.

>>> "abc\n123" 
"abc\n123" 
>>> print "abc\n123" 
abc 
123 

W python 3.x print jest zwykłą funkcją, więc musisz użyć(). Poniższy (zalecane) będzie działać zarówno 2.x oraz 3.x:

>>> from __future__ import print_function 
>>> print("abc\n123") 
abc 
123 
+0

Tak. Z tego co rozumiem, aby "odświeżyć" "\ n", powinienem użyć wydruk zamiast pisać [funkcja] .__ doc__? – armundle

+0

Tak. Zostanie również pominięty cytat. –

3

Może się okazać, że bardziej pomocne użyć (na przykład) help(divmod) zamiast divmod.__doc__.

1
In [6]: print divmod.__doc__ 
divmod(x, y) -> (div, mod) 

Return the tuple ((x-x%y)/y, x%y). Invariant: div*y + mod == x. 

ale proponuję użyć

In [8]: help(divmod) 

lub w ipython

In [9]: divmod? 
Type:  builtin_function_or_method 
Base Class: <type 'builtin_function_or_method'> 
String Form:<built-in function divmod> 
Namespace: Python builtin 
Docstring: 
divmod(x, y) -> (div, mod) 

Return the tuple ((x-x%y)/y, x%y). Invariant: div*y + mod == x. 
Powiązane problemy