xylz,imxylz

          關注后端架構、中間件、分布式和并發編程

             :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            111 隨筆 :: 10 文章 :: 2680 評論 :: 0 Trackbacks

          6-12. Strings.

          (1)Create a function called findchr(), with the following declaration:

          def findchr(string, char)
          findchr() will look for character char in string and return the index of the first occurrence of char, or -1 if that char is not part of string. You cannot use string.*find() or string.*index() functions or methods.

          (2)Create another function called rfindchr() that will find the last occurrence of a character in a string. Naturally this works similarly to findchr(), but it starts its search from the end of the input string.

          (3)Create a third function called subchr() with the following declaration:

          def subchr(string, origchar, newchar)
          subchr() is similar to findchr() except that whenever origchar is found, it is replaced by newchar. The modified string is the return value.
           

           1#!/usr/bin/env python
           2#-*- coding:utf-8 -*-
           3#$Id: p0612.py 140 2010-05-27 04:10:06Z xylz $
           4
           5'''
           6This is a 'python' study plan for xylz.
           7Copyright (C)2010 xylz (www.imxylz.info)
           8'''
           9
          10
          11def findchr(s,ch):
          12    """
          13    Look for character 'ch' in 's' and return the index of the first occurrence of 'ch', or -f if that 'ch' is not part of 's'
          14    """
          15    if s is None or len(s)==0: return -1
          16    for i,c in enumerate(s):
          17        if c == ch: return i
          18    return -1
          19
          20def rfindchr(s,ch):
          21    """
          22    Look for character 'ch' in 's' and return the index of the last occurrence of 'ch', or -f if that 'ch' is not part of 's'
          23    """
          24    if s is None or len(s)==0: return -1
          25    for i in range(len(s)-1,-1,-1):
          26        if s[i] == ch: return i
          27    return -1
          28
          29def subchr(s,oldch,newch):
          30    """
          31    Look for character 'oldch' in 'newch' and replace each 'oldch' with 'newch' and return the string modified.
          32    """
          33    if s is None or len(s)==0: return s
          34    ret=[]
          35    for c in s:
          36        ret.append(c if c!=oldch else newch)
          37    return ''.join(ret)
          38
          39
          40if __name__ == '__main__':
          41    assert 1 == findchr('Good','o')
          42    try:
          43        assert 0 == findchr('Good','x')
          44        raise ValueError, 'Test fail.'
          45    except AssertionError as e:
          46        print e
          47    assert 2 == rfindchr('Good','o')
          48    assert 'Gxxd' == subchr('Good','o','x')
          49
          50
          在此類的測試程序中,使用assert斷言來測試正確性,如果測試失敗會拋出一個AssertionError的異常。


          ©2009-2014 IMXYLZ |求賢若渴
          posted on 2010-05-27 12:13 imxylz 閱讀(16756) 評論(0)  編輯  收藏 所屬分類: Python

          ©2009-2014 IMXYLZ
          主站蜘蛛池模板: 玉屏| 蓬溪县| 九寨沟县| 营口市| 清河县| 达州市| 盐山县| 巴东县| 工布江达县| 奎屯市| 肇庆市| 东兴市| 疏附县| 本溪市| 瓦房店市| 姜堰市| 南汇区| 鄂尔多斯市| 柳河县| 仁布县| 云安县| 古交市| 沧州市| 越西县| 安福县| 萨迦县| 泰和县| 自贡市| 绥棱县| 巧家县| 东海县| 玉山县| 玉溪市| 广平县| 南昌市| 宣汉县| 兴业县| 阿勒泰市| 祁门县| 星子县| 无为县|