Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #22180

Re: Is there any difference between print 3 and print '3' in Python ?

From Robert Kern <robert.kern@gmail.com>
Subject Re: Is there any difference between print 3 and print '3' in Python ?
Date 2012-03-26 13:10 +0100
References <5128580.32.1332762326119.JavaMail.geo-discussion-forums@pbom7>
Newsgroups comp.lang.python
Message-ID <mailman.994.1332763876.3037.python-list@python.org> (permalink)

Show all headers | View raw


On 3/26/12 12:45 PM, redstone-cold@163.com wrote:
> I know the print statement produces the same result when both of these two instructions are executed ,I just want to know Is there any difference between print 3 and print '3' in Python ?

Yes, there is a difference, but not much.

[~]
|6> import dis

[~]
|7> dis.disassemble(compile('print 3', '<string>', 'exec'))
   1           0 LOAD_CONST               0 (3)
               3 PRINT_ITEM
               4 PRINT_NEWLINE
               5 LOAD_CONST               1 (None)
               8 RETURN_VALUE

[~]
|8> dis.disassemble(compile('print "3"', '<string>', 'exec'))
   1           0 LOAD_CONST               0 ('3')
               3 PRINT_ITEM
               4 PRINT_NEWLINE
               5 LOAD_CONST               1 (None)
               8 RETURN_VALUE


As you can see, the only difference is in the first instruction. Both of these 
put the object that you specified by the literal onto the stack. The difference 
is that one is the int object specified by the literal 3 and the other is the 
str object specified by the literal "3". Both of these objects happen to give 
the same __str__ output, so that's what gets printed.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
  that is made terrible by our own mad attempt to interpret it as though it had
  an underlying truth."
   -- Umberto Eco

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Is there any difference between print 3 and print '3' in Python ? redstone-cold@163.com - 2012-03-26 04:45 -0700
  Re: Is there any difference between print 3 and print '3' in Python ? Chris Angelico <rosuav@gmail.com> - 2012-03-26 23:01 +1100
  Re: Is there any difference between print 3 and print '3' in Python ? Kiuhnm <kiuhnm03.4t.yahoo.it> - 2012-03-26 14:07 +0200
  Re: Is there any difference between print 3 and print '3' in Python ? Robert Kern <robert.kern@gmail.com> - 2012-03-26 13:10 +0100
  Re: Is there any difference between print 3 and print '3' in Python ? Dave Angel <d@davea.name> - 2012-03-26 08:11 -0400
    Re: Is there any difference between print 3 and print '3' in Python ? redstone-cold@163.com - 2012-03-26 07:28 -0700
      Re: Is there any difference between print 3 and print '3' in Python ? Stefan Behnel <stefan_ml@behnel.de> - 2012-03-26 17:03 +0200
    Re: Is there any difference between print 3 and print '3' in Python ? redstone-cold@163.com - 2012-03-26 07:28 -0700
    Re: Is there any difference between print 3 and print '3' in Python ? Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2012-03-27 03:43 +0000
      Re: Is there any difference between print 3 and print '3' in Python ? rusi <rustompmody@gmail.com> - 2012-03-26 22:00 -0700
  Re: Is there any difference between print 3 and print '3' in Python ? Terry Reedy <tjreedy@udel.edu> - 2012-03-26 11:45 -0400
  Re: Is there any difference between print 3 and print '3' in Python ? "J. Cliff Dyer" <jcd@sdf.lonestar.org> - 2012-03-26 13:06 -0400
  Re: Is there any difference between print 3 and print '3' in Python ? Peter Otten <__peter__@web.de> - 2012-03-26 19:20 +0200

csiph-web