From 6016dbeccaadb94eb7535230f29fa4b4e2579897 Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Tue, 4 Dec 2001 19:20:43 +0000 Subject: Talk about str() in the discussion of string representations of values, and give examples for which str() and repr() yield different results. This closes SF bug #485446. --- Doc/tut/tut.tex | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex index e90c267..f02b3ff 100644 --- a/Doc/tut/tut.tex +++ b/Doc/tut/tut.tex @@ -2638,11 +2638,34 @@ string to be applied to the right argument, and returns the string resulting from this formatting operation. One question remains, of course: how do you convert values to strings? -Luckily, Python has a way to convert any value to a string: pass it to -the \function{repr()} function, or just write the value between -reverse quotes (\code{``}). Some examples: +Luckily, Python has ways to convert any value to a string: pass it to +the \function{repr()} or \function{str()} functions, or just write +the value between reverse quotes (\code{``}, equivalent to +\function{repr()}). + +The \function{str()} function is meant to return representations of +values which are fairly human-readable, while \function{repr()} is +meant to generate representations which can be read by the interpreter +(or will force a \exception{SyntaxError} if there is not equivalent +syntax). For objects which don't have a particular representation for +human consumption, \function{str()} will return the same value as +\function{repr()}. Many values, such as numbers or structures like +lists and dictionaries, have the same representation using either +function. Strings and floating point numbers, in particular, have two +distinct representations. + +Some examples: \begin{verbatim} +>>> s = 'Hello, world.' +>>> str(s) +'Hello, world.' +>>> `s` +"'Hello, world.'" +>>> str(0.1) +'0.1' +>>> `0.1` +'0.10000000000000001' >>> x = 10 * 3.25 >>> y = 200 * 200 >>> s = 'The value of x is ' + `x` + ', and y is ' + `y` + '...' -- cgit v0.12