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!
原文地址:https://www.cnblogs.com/allenblogs/p/2027751.html