[Tutor] Question about string

Michael yaV michael at yavarsity.com
Thu Jul 3 19:20:36 CEST 2008


This is in the " Snake Wrangling For Kids" Learning to Program with  
Python by Jason R Briggs
Thought this would help.
Michael

What’s the difference between 10 and ‘10’?
Not much apart from the quotes, you might be thinking. Well, from  
reading
the earlier chapters, you know that the first is a number and the  
second is a string.
This makes them differ more than you might expect. Earlier we compared  
the value
of a variable (age) to a number in an if-statement:
 >>> if age == 10:
... print ’you are 10’
If you set variable age to 10, the print statement will be called:
 >>> age = 10
 >>> if age == 10:
... print ’you are 10’
...
you are 10
However, if age is set to ’10’ (note the quotes), then it won’t:
 >>> age = ’10’
 >>> if age == 10:
... print ’you are 10’
...
Why is the code in the block not run? Because a string is different  
from a
number, even if they look the same:
 >>> age1 = 10
 >>> age2 = ’10’
 >>> print age1
10
 >>> print age2
10
See! They look exactly the same. Yet, because one is a string, and the  
other is
a number, they are different values. Therefore age == 10 (age equals  
10) will never
be true, if the value of the variable is a string.
Probably the best way to think about it, is to consider 10 books and  
10 bricks.
The number of items might be the same, but you couldn’t say that 10  
books are
exactly the same as 10 bricks, could you? Luckily in Python we have  
magic functions
which can turn strings into numbers and numbers into strings (even if  
they won’t
quite turn bricks into books). For example, to convert the string ’10’  
into a number
you would use the function int:
4.5. WHAT’S THE DIFFERENCE. . .? 43
 >>> age = ’10’
 >>> converted_age = int(age)
The variable converted age now holds the number 10, and not a string.  
To convert
a number into a string, you would use the function str:
 >>> age = 10
 >>> converted_age = str(age)
converted age now holds the string 10, and not a number. Back to that  
if-statement
which prints nothing:
 >>> age = ’10’
 >>> if age == 10:
... print ’you are 10’
...
If we convert the variable before we check, then we’ll get a different  
result:
 >>> age = ’10’
 >>> converted_age = int(age)
 >>> if converted_age == 10:
... print ’you are 10’
...
you are 10






On Jul 3, 2008, at 12:29 PM, Dong Li wrote:

>
>> Date: Thu, 3 Jul 2008 10:18:23 +0100
>> From: "Alan Gauld" <alan.gauld at btinternet.com>
>> Subject: Re: [Tutor] Question about string
>> To: tutor at python.org
>> Message-ID: <g4i5h5$1cc$1 at ger.gmane.org>
>> Content-Type: text/plain; format=flowed; charset="iso-8859-1";
>> 	reply-type=original
>>
>>
>> "Dong Li" <dongli2020 at gmail.com> wrote
>>
>>> I am new to python, so what I ask may be so basic. I don't know the
>>> difference between
>>>
>>> s = 'a' 'b'
>>> and
>>> s = 'a'+'b'
>>>
>>> They have the same results. Thanks for relying!
>>
>> I think the differencec is that the first is purely a syntax thing so
>> the interpreter does the work of joining the strings together before
>> processing the result as a single string whereas the second the
>> two strings are treated separately and actual string addition
>> (concatenation) is done which is a much more expensive
>> operation in terms of computer power.
>>
>> The first is only possible if you have literal strings but the second
>> can be used for variables:
>>
>> s1 = 'a'
>> s2 = 'b'
>> s = s1 s2     # doesn't work
>> s = s1 + s2   # works
>>
>> HTH,
>>
>> -- 
>> Alan Gauld
>> Author of the Learn to Program web site
>> http://www.freenetpages.co.uk/hp/alan.gauld
>>
>
>> ------------------------------
>
>> Date: Thu, 3 Jul 2008 09:53:07 +0000
>> From: "Monika Jisswel" <monjissvel at googlemail.com>
>> Subject: Re: [Tutor] Question about string
>> To: tutor at python.org
>> Message-ID:
>> 	<e2f191310807030253p681550d0t76e69a4080055584 at mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Python is one of the smartest languages, it does many things for the
>> programmer  (I don't know but this might be what they mean with
>> Batteries-Included) , & you have just scratched the surface of it,   
>> here
>> python concatenated your strings together for you, later you will  
>> meet list
>> comprehention & other stuff that actually does most of the  
>> programing logic
>> for you for free.
>> -------------- next part --------------
>> An HTML attachment was scrubbed...
>> URL: <http://mail.python.org/pipermail/tutor/attachments/20080703/9c54d12a/attachment-0001.htm 
>> >
>>
>> ------------------------------
>
> Thank you for excellent explanations! I have been attracted by python
> more and more!
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>



More information about the Tutor mailing list