python核心编程第二版课后题答案第六章_第1页
python核心编程第二版课后题答案第六章_第2页
python核心编程第二版课后题答案第六章_第3页
python核心编程第二版课后题答案第六章_第4页
python核心编程第二版课后题答案第六章_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Def idcheck():6-2 id修正idcheck允许长度为标识符并可识别python关键字Import stringImport keywordKeys=keyword.kwlistAlphas=string.letters _Nums=string.digitsAlphanums=alphassnumsprint welcome to the identifier check v 1.1my input=raw _ input(identifier to test :)IsOne=False #是字符吗if len(my input)=1: isone=falseIf myInpu

2、t in keys:print invalid : symbol has been definedReturn FalseElif myInput0 not in alphas:print invalid : first symbol must be alphabeticReturn FalseElif not isOne:OtherInput=myInput1:otherChar in otherInput:If otherChar not in alphanums:print invalid : remainn symbols must be alphanumericReturn Fals

3、eprint“okay as an Identifier”Return TrueDef order(nlist):6-3(a)输入从大到小的一系列数字注意:输入值为数字的列表Newlist=For x in nlist:Newlist.append(int(x)Return sorted (new list,reverse=true)Def order2(nlist):6-3(b)与a相同,但使用词典顺序注意:词典的顺序是词典的顺序。例如,21大于111。2是因为大于1方法是用字符串替换输入的数字将#中的所有元素变为字符串Newlist=For x in nlist:Newlist.appen

4、d(str(x)New list=sorted (new list,reverse=true)For I,x in enumeate (new list) :Newlisti=int(x)Return newlistDef avescore():输入测试分数以计算平均值Scorelist= #分数列表While True:my input=raw _ input(input the score(if no number quite):)Try:Scorelist.append(float(myinput)Except:Breakif not len(score list): return fa

5、lse返回sum(核心列表)/len(核心列表)Defshostr () :您可以更新6-5(a) 2-7,以每次向后显示一个字符串中的字符Istr=raw _ input(输入字符串:)Lens=len(istr)If lens=0:return FalseIf lens=1:打印istrReturn TrueFor I,j in enumeate (istr) :If I=0 and len(istr)!=1:Print j,istri 1Elif I=len(istr)-1 and I!=0:Print istri-1Else:Print istri-1,j,istri 1Return

6、TrueDef mycmp():6-5(b)通过扫描确定两个字符串是否匹配,不能使用比较运算符或CMP()Str1=raw _ input(第一个字符串:)Str2=raw _ input(第二串:)Equal=len(str1)-len(str2)If not equal:return False #表示长度不相等#将字符串更改为列表For I,j in enumeate (str1) :If ord(j)-ord(str2i):#减少非零值Return FalseReturn TrueDef isback():6-5(c)判断一个字串是否为回文,忽略控制符号和空格支援中文Import st

7、ring#控件表示ASCII代码中无法导出的0到31和33个字符127Denny=chr (I) for I in xrange (0,32) list (string.whitespace)丹尼。append (chr (127)strs=raw _ input(please input string :)#将输入的数据解码为unicode。默认值在windows上为gbk,因此此处为gbk#如果位于其他命令行中,则必须默认对在命令行中输入的字符进行编码Strs=strs.decode(gbk)New=For I in strs:If I in denny:continueNew.appen

8、d(i)Lens=len(new)If lens#3360return FalseElse:Half=lens/2if new0: half=new-1:-half-1:-1: return trueReturn FalseDef beback():输入6-5(d)字符串,然后重复反向副本以构建回文Strs=raw _ input(输入字符串:)#将输入的数据解码为unicode。默认值在windows上为gbk,因此此处为gbk#如果位于其他命令行中,则必须默认对在命令行中输入的字符进行编码Strs=strs.decode(gbk) #以unicode解码Lens=len(strs)#这里是

9、-1:-lens-1:-1#分析如下:-1是倒数第一个,-(lens 1)是长度,-1是步进#也就是说,切片a=x1000:因此从结束到-1(步进),递减到倒数lens 1ContinueExcept:ContinueBreakIput=str(iput)For j in iput:New=listsint(j)-Return new0:-1Def minute2time():输入分钟以返回6到9小时和分钟minute=int(raw _ input(please input a minutes :)Hours=minute/60Newminute=minute-hours*60Return

10、360 d% (hours,new minute)Def like():6-10创建返回类似于输入字符串(字符串的大小写必须反转)的字符串的函数例如:Mr.Ed返回mR.eDImport stringRandom导入Letter=string.ascii_uppercase #大写字母字符串Letter=string.ascii_lowercase #小写字母字符串Name=raw _ input(输入字符串:)Newname=For I in name:If I in Letter:Newname=random.choice(letter)ContinueIf I in letter:New

11、name=random.choice(Letter)ContinueNewname=iReturn newnameDef int2ip():6-11(a)创建从整数到IP地址的转换Ints=raw_input(Input Int:)#分析IP地址与整数的关系# IP地址由4个字节组成,每个字节8位,如果替换为十六进制,则为8位# ff.ff.ff=#那么后面是4位二进制文件#我们要做的是将十进制的长整数替换为4字节的二进制或4个十六进制,并将每个字节替换为单独的十进制#将整数转换为4字节实际上是一个整数-十六进制数hexs=hex(ints)23360# hex删除转换后的第一个0x,并在前面

12、填充0While len(hexs)8:Hexs=0 hexsIp1=int(hexs0 hexs1,16)Ip2=int(hexs2 hexs3,16)Ip3=int(hexs4 hexs5,16)Ip4=int(hexs6 hexs7,16)Return d.d.d.d% (ip1、ip2、ip3、ip4)Def ip2int():6-11(b)将IP地址转换为整数Ip=raw_input(Input Ip:)#分析:#首先将IP转换为列表#然后变成十六进制,然后加在一起#然后将十六进制转换为十进制Ips=ip.split(.)Ip=For I in xrange(0,4):Ip.appe

13、nd(int(ipsi)Ip I=hex (IP I) 23360If len(ipi)=1:Ipi=0 ipiReturn int (IP 0 IP 1 IP 2 IP 3,16)Def findchr(string,char):6-12(a) string找不到char,找不到返回索引,找不到-1不能使用Find或index方法# strs=raw _ input(输入字符串:)# char=raw _ input(input char :)#书没有说明要匹配一个字符或多个字符。假设有多个Lens=len(char) #计算char的长度#我们可以使用in来指导是否存在If char not in string:return -1For I,j in enumeate (string) :找到If j in char:#首字母 I fstringI : I lens=char : #检查是否匹配Return IReturn -1Def rfindchr(string,char

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论