《python核心编程第二版》第六章 习题补充

来源:互联网 发布:ubuntu 14.04 卸载 编辑:程序博客网 时间:2024/06/10 02:56

6–11.转换 (a)创建一个从整数到 IP 地址的转换程序,如下格式: WWW.XXX.YYY.ZZZ.

# -*- coding :utf-8 -*-num = raw_input("please input a number: ")a = num.split('.')str = ''for i in a:str = str + istr = str + '.'print str

(b)更新你的程序,使之可以逆转换.

 

# -*- coding :utf-8 -*-num = raw_input("please input an number: ")str1 = ''a = []a = num.split('.')b =a[::-1]for i in b:str1 = str1 + istr1 = str1 + '.'print str1

6–12.字符串

(a)创建一个名字为 findchr()的函数,函数声明如下:  def findchr(string, char)  findchr()要在字符串 string 中查找字符 char,找到就返回该值的索引,否则返回-1.不能用 string.*find()或者 string.*index()函数和方法

# -*- coding:utf-8 -*-def findchr(string,char):lenOfChar = 0index = 0lenOfSame = 0num3 = 0flag = 0lenOfChar = len(char)charlocation = 0index_string = 0if lenOfChar != 1:for i in string:if i == char[index]:charlocation = index_stringlenOfSame = lenOfSame + 1index = index + 1if index == lenOfChar:flag =1charlocation = charlocation - lenOfChar + 1breakindex_string = index_string + 1if lenOfSame == lenOfChar:flag = 1if lenOfChar == 1:index = 0charlocation = 0for i in string:if i == char:flag =1charlocation = indexbreakindex = index +1if flag ==1:print charlocationelse:print -1if __name__ == "__main__":findchr("string","ab")

(b)创建另一个叫 rfindchr()的函数,查找字符 char 后一次出现的位置.它跟 findchr()工作 类似,不过它是从字符串的后开始向前查找的.

# -*- coding :utf -8 -*-def rfindchr(string,char):stringReverse  = string [::-1]charReverse = char [::-1]lenOfChar = 0index = 0lenOfSame = 0num3 = 0flag = 0lenOfString = len(stringReverse)lenOfChar = len(charReverse)charlocation = 0index_string = 0if lenOfChar != 1:for i in stringReverse:if i == charReverse [index]:charlocation = index_stringlenOfSame = lenOfSame + 1index = index + 1if index == lenOfChar:flag = 1charlocation = charlocation - lenOfChar +1breakindex_string = index_string +1if lenOfSame == lenOfChar:flag =1if lenOfChar == 1:index = 0charlocation = 0for i in stringReverse:if i == charReverse:flag = 1charlocation = indexbreakindex = index +1if flag == 1:print lenOfString-charlocation - lenOfCharelse:print -1if __name__ == "__main__":rfindchr("addddd",'d')


(c)创建第三个函数,名字叫 subchr(),声明如下:   def subchr(string, origchar, newchar)  subchr()跟 findchr()类似,不同的是,如果找到匹配的字符就用新的字符替换原先字符.返回 修改后的字符串. 


# -*- coding:utf-8 -*-def subchr(string,char,newchar):lenOfChar = 0index = 0lenOfSame = 0num3 = 0flag = 0lenOfChar = len(char)charlocation = 0index_string = 0lenOfString = len(string)str1 = ''if lenOfChar != 1:for i in string:if i == char[index]:charlocation = index_stringlenOfSame = lenOfSame +1index = index +1if index == lenOfChar:flag =1charlocation = charlocation - lenOfChar +1breakindex_string = index_string +1if lenOfSame == lenOfChar:flag = 1if lenOfChar ==1:index = 0charlocation = 0for i in string:if i == char:flag = 1charlocation = indexbreakindex = index +1if flag ==1:for i in range(charlocation):str1 = str1+ string[i]for i in newchar:str1 = str1 + ifor i in range(charlocation+lenOfChar,lenOfString):str1 = str1 + string[i]print str1else:print -1if __name__ == "__main__":subchr("abcbcbcbcd",'bc','ab')