On 01/19/2014 02:59 PM, rahmad akbar wrote:> hey guys, super noob here, i am trying to understand the following code
from google tutorial which i failed to comprehend

#code start
# E. not_bad
# Given a string, find the first appearance of the
# substring 'not' and 'bad'. If the 'bad' follows
# the 'not', replace the whole 'not'...'bad' substring
# with 'good'.
# Return the resulting string.
# So 'This dinner is not that bad!' yields:
# This dinner is good!
def not_bad(s):
   # +++your code here+++
   # LAB(begin solution)
   n = s.find('not')
   b = s.find('bad')
   if n != -1 and b != -1 and b > n:
     s = s[:n] + 'good' + s[b+3:]
   return s
#code end

  on the following lines, what is -1, is that index number? and i dont
understand the entire second line

-1 is what find returns if the searched substring is not at all present in the bigger string: a trick meaning "could not find it". (-1 also means last index, but is not necessary for find, it would return the positive last index)

if n != -1 and b != -1 and b > n:

a conditions for which 3 sub-conditions must be met at once

     s = s[:n] + 'good' + s[b+3:]

Watch this:

    string:    This dinner is not that bad!
    indexes:   0              n        b  -1

s[:n]   = s[0:n]    = "This dinner is "
s[b+3:] = s[b+3:-1] = "!"

+ concatenates (glues together) bits of strings

denis
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to