#!/usr/bin/python -tt # Copyright 2010 Google Inc. # Licensed under the Apache License, Version 2.0 # http://www.apache.org/licenses/LICENSE-2.0 # Google's Python Class # http://code.google.com/edu/languages/google-python-class/ # Basic string exercises # 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. def donuts(count): result = 'many' if count < 10 : result = str(count) return 'Number of donuts: X'.replace('X',result) # B. both_ends # Given a string s, return a string made of the first 2 and the last 2 chars of the original string, # However, if the string length is less than 2, return instead the empty string. def both_ends(s): if len(s) < 2: return ''; return s[:2] + s[-2:] # 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. # Assume that the string is length 1 or more. def fix_start(s): return s[:1] + s[1:].replace(s[:1],'*') # 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. # Assume a and b are length 2 or more. def mix_up(a, b): return b[:2] + a[2:] + ' ' + a[:2] + b[2:] # Provided simple test() function used in main() to print # what each function returns vs. what it's supposed to return. def test(got, expected): if got == expected: prefix = ' OK ' else: prefix = ' X ' print '%s got: %s expected: %s' % (prefix, repr(got), repr(expected)) # Provided main() calls the above functions with interesting inputs, # using test() to check if each result is correct or not. def main(): print 'donuts' # Each line calls donuts, compares its result to the expected for that call. test(donuts(4), 'Number of donuts: 4') test(donuts(9), 'Number of donuts: 9') test(donuts(10), 'Number of donuts: many') test(donuts(99), 'Number of donuts: many') print print 'both_ends' test(both_ends('spring'), 'spng') test(both_ends('Hello'), 'Helo') test(both_ends('a'), '') test(both_ends('xyz'), 'xyyz') print print 'fix_start' test(fix_start('babble'), 'ba**le') test(fix_start('aardvark'), 'a*rdv*rk') test(fix_start('google'), 'goo*le') test(fix_start('donut'), 'donut') print print 'mix_up' test(mix_up('mix', 'pod'), 'pox mid') test(mix_up('dog', 'dinner'), 'dig donner') test(mix_up('gnash', 'sport'), 'spash gnort') test(mix_up('pezzy', 'firm'), 'fizzy perm') # Standard boilerplate to call the main() function. if __name__ == '__main__': main()
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question