Python学习7_OnlineResources_EXE

# 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):
  if count >= 10 :
    print('Number of donuts: many')
  else :
  	print('Number of donuts: %d '%(count))
    #print('Number of donuts: %d ',%(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):
  '''l = len(s)
  if l >= 2:
  	return s[:2] + s[(l-2):]
  else :
  	return ''
  '''
  #return l >= 2?(s[:2] + s[(l-2):]):'' invalid
  return s[:2] + s[(len(s)-2):] if len(s) >= 2 else ''


# 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):
  l = len(s)
  i = 1
  while i < l:
  	if s[0] == s[i]:
  	  s = s.replace(s[i],"*")
  	  print('this is %d to replace with * and output of this time is %s'%(i,s))
  	  i += 1
  	else:
  	  i += 1
  	  continue
  return s

def fix_start(s):
  l = len(s)
  i = 1
  f = s[0]
  print('s[0]: ',s[0])
  while i < l:
  	if s[i] == f:
  	  s = s.replace(s[i],"*")
  	  print('this is %d to replace with * and output of this time is %s'%(i,s))
  	  i += 1
  	else:
  	  i += 1
  	  continue
  return s'''
def fix_start(s):
  return s[0] + s[1:].replace(s[0],'*')


# 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):
  temp = a[:2]
  a = a.replace(a[:2],b[:2])
  b = b.replace(b[:2],temp)
  c = a + ' ' + b
  return c


# 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('babbleb'), '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()

OUTPUT IS:

donuts
Number of donuts: 4
  X  got: None expected: 'Number of donuts: 4'
Number of donuts: 9
  X  got: None expected: 'Number of donuts: 9'
Number of donuts: many
  X  got: None expected: 'Number of donuts: many'
Number of donuts: many
  X  got: None expected: 'Number of donuts: many'
both_ends
 OK  got: 'spng' expected: 'spng'
 OK  got: 'Helo' expected: 'Helo'
 OK  got: '' expected: ''
 OK  got: 'xyyz' expected: 'xyyz'
fix_start
 OK  got: 'ba**le*' expected: 'ba**le*'
 OK  got: 'a*rdv*rk' expected: 'a*rdv*rk'
 OK  got: 'goo*le' expected: 'goo*le'
 OK  got: 'donut' expected: 'donut'
mix_up
 OK  got: 'pox mid' expected: 'pox mid'
 OK  got: 'dig donner' expected: 'dig donner'
 OK  got: 'spash gnort' expected: 'spash gnort'
 OK  got: 'fizzy perm' expected: 'fizzy perm'

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值