Google Python Class练习解答1-string1.py,python1-string1.py,#!/usr/bin/p


#!/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# Fill in the code for the functions below. main() is already set up# to call the functions with a few different inputs,# printing 'OK' when each function is correct.# The starter code for each function includes a 'return'# which is just a placeholder for your code.# It's ok if you do not complete all the functions, and there# are some additional functions to try in string2.py.# 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):    return# 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):    if(len(s) < 2):        return '';    firstTwoChars = str(s)[0:2]    lastTwoChars = str(s)[-2:]    return (firstTwoChars+lastTwoChars)# 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):    first_char = str(s[0:1])    result_str = first_char    for c in s[1:]:        if c==first_char:            result_str += '*'        else:            result_str += c    return result_str# 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):    if(len(a) < 2 or len(b) < 2):        return    a, b = b[0:2]+a[2:], a[0:2]+b[2:]    return '%s %s' % (a, b)# 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, str(got), str(expected)))# Provided main() calls the above functions with interesting inputs,# using test() to check if each result is correct or not.def main():    print('both_ends')    test(both_ends('spring'), 'spng')    test(both_ends('Hello'), 'Helo')    test(both_ends('a'), '')    test(both_ends('xyz'), 'xyyz')    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('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()#该片段来自于http://byrx.net

评论关闭