zoukankan      html  css  js  c++  java
  • Google Python College Example:String1.py

    #!/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):
    # +++your code here+++
    if count < 10:
    s1
    = "Number of donuts: " + str(count)
    print s1
    elif count >= 10:
    s1
    = "Number of donuts: many"
    print s1
    else:
    s1
    = "Please double check your input"
    print s1
    return s1


    # 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:
    print "the length of string is less than 2"
    s2
    = ""
    elif len(s) >= 2:
    s2
    = s[0:2] + s[-2:]
    print s2
    return s2


    # 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+++
    strlen = len(s)
    if strlen <= 1:
    print 'the string length is less than 1'
    return s
    elif strlen > 1:
    i
    = 0
    s
    = s[0]+s[1:].replace(s[0],'*')
    return s


    # 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+++
    temp = a
    a
    = a.replace(a[0:2],b[0:2])
    b
    = b.replace(b[0:2],temp[0:2])
    return 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, 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()
    Work for fun,Live for love!
  • 相关阅读:
    strust1.x的jar包
    DispatchAction,LookupDispatchAction,MappingDispatchAction
    Android ADT插件配置
    怎样搭建Android开发平台
    转发和重定向的区别
    时间js
    strtus spring hibernate ssh面试内容总结
    航行
    教你怎么避免重启你的应用程式 web ReLoadConfig ReLoadInterval contextConfigLocation
    WebSpher 6.1 安装与应用
  • 原文地址:https://www.cnblogs.com/allenblogs/p/2027751.html
Copyright © 2011-2022 走看看