Google python code, string2.py

As from the previous post, I am doing the google’s python class code and if any one comes up different solutions to the googles version or mine, please post. So here is the string2.py solutions from me.

Verbing, needs to check for string over 3 and then only compare the last 3 characters for ‘ing’

# D. verbing
# Given a string, if its length is at least 3,
# add 'ing' to its end.
# Unless it already ends in 'ing', in which case
# add 'ly' instead.
# If the string length is less than 3, leave it unchanged.
# Return the resulting string.
def verbing(s):
  # +++your code here+++
  if len(s) < 3:
     return s
  elif (s[-3:] =='ing'):
     return s + 'ly'
  else:
     return s + 'ing'

Not bad, find the ‘not’ and ‘bad’, if bad after not then replace.

# 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+++
  notV = s.find('not')
  badV = s.find('bad')
  if (badV > notV):
     return s[:notV] + 'good' + s[(badV+3):]
  return s

Font back, here we needed the modulus function to find out the reminder of a division.

# F. front_back
# Consider dividing a string into two halves.
# If the length is even, the front and back halves are the same length.
# If the length is odd, we'll say that the extra char goes in the front half.
# e.g. 'abcde', the front half is 'abc', the back half 'de'.
# Given 2 strings, a and b, return a string of the form
#  a-front + b-front + a-back + b-back
def front_back(a, b):
  # +++your code here+++
  aV = len(a)/2+(len(a)%2)
  bV = len(b)/2+(len(b)%2)
  return a[:aV]+b[:bV]+a[aV:]+b[bV:]

Google python code

After been talking with some friends, they said about putting some of the google code from there classes online encase other people come up with any other versions. So from the first of the classes that they was talking about was Python , so here is my code for these, may be other people may be doing and come up with different code ?

For first string1.py test there is 4 functions that you have code up and in order from the source code.

Donut, as from the below you just need do a compare on the parameter in.

# A. donuts
# Given an int count of a number of donuts, return a string
# of the form 'Number of donuts: <count>', where <count> is the number
# passed in. However, if the count is 10 or more, then use the word 'many'
# instead of the actual count.
# So donuts(5) returns 'Number of donuts: 5'
# and donuts(23) returns 'Number of donuts: many'
def donuts(count):
  # +++your code here+++
  if count >= 10:
     return 'Number of donuts: many'
  return 'Number of donuts: ' + str(count)

Both end, it is string manipulation and returning part of the string if longer enough.

# B. both_ends
# Given a string s, return a string made of the first 2
# and the last 2 chars of the original string,
# so 'spring' yields 'spng'. However, if the string length
# is less than 2, return instead the empty string.
def both_ends(s):
  # +++your code here+++
  if len(s) < 2:
    return ''
  return s[:2] + s[-2:]

Fix start, replace the characters within the string with a * that the same as the first character, so just need to concatenate the first character with the rest of the characters with any replaced 🙂

# C. fix_start
# Given a string s, return a string
# where all occurences of its first char have
# been changed to '*', except do not change
# the first char itself.
# e.g. 'babble' yields 'ba**le'
# Assume that the string is length 1 or more.
# Hint: s.replace(stra, strb) returns a version of string s
# where all instances of stra have been replaced by strb.
def fix_start(s):
  # +++your code here+++
  return s[0] + s[1:].replace(s[0],'*')

Mix up, change the first 2 characters from the two parameters around.

# D. MixUp
# Given strings a and b, return a single string with a and b separated
# by a space '<a> <b>', except swap the first 2 chars of each string.
# e.g.
#   'mix', pod' -> 'pox mid'
#   'dog', 'dinner' -> 'dig donner'
# Assume a and b are length 2 or more.
def mix_up(a, b):
  # +++your code here+++
  return b[:2]+a[2:]+' '+a[:2]+b[2:]