核心编程第二版第六章习题

6–1. 字符串.string 模块中是否有一种字符串方法或者函数可以帮我鉴定一下一个字符串
是否是另一个大字符串的一部分?

成员关系操作符in

obj in seq

6–3. 排序
(a) 输入一串数字,从大到小排列之.
(b) 跟 a 一样,不过要用字典序从大到小排列之

(a)

num=raw_input(">>")
lisnum=list(num)
list.sort(lisnum)
print lisnum

(b)没看懂

6–4. 算术. 更新上一章里面你的得分测试练习方案,把测试得分放到一个列表中去.你的代
码应该可以计算出一个平均分,见练习 2-9 和练习 5-3.

num=[89,63,78,99,100]
result=float(sum(num))
aver=result/len(num)
print aver

6–5. 字符串
(a)更新你在练习 2-7 里面的方案,使之可以每次向前向后都显示一个字符串的一个字符.
(b)通过扫描来判断两个字符串是否匹配(不能使用比较操作符或者 cmp()内建函数)。附加题:
在你的方案里加入大小写区分.
(c)判断一个字符串是否重现(后面跟前面的一致).附加题:在处理除了严格的回文之外,加入对
例如控制符号和空格的支持。
(d)接受一个字符,在其后面加一个反向的拷贝,构成一个回文字符串.

(b)

a="abc"
b="abc"
c="ABC"
print a == b
print a== c

(c)

a="abc"
b=a[::-1]
c=a+b
print c

6–6. 字符串.创建一个 string.strip()的替代函数:接受一个字符串,去掉它前面和后面的
空格(如果使用 string.*strip()函数那本练习就没有意义了)

a="  bbb v  "
def stripp(a):
    num=len(a)
    for i in range(num):
        if a[0]==" ":
            a=a[1:]
        else:
            return a
a=stripp(a)
b=a[::-1]
c=stripp(b)
c=c[::-1]
print c

6–8. 列表.给出一个整数值,返回代表该值的英文,比如输入 89 返回"eight-nine"。附加题:
能够返回符合英文语法规则的形式,比如输入“89”返回“eighty-nine”。本练习中的值限定在家 0
到 1,000.

unit=[‘zero‘,‘one‘,‘two‘,‘three‘,‘four‘,‘five‘,‘six‘,‘seven‘,‘eight‘,‘nine‘]
ten_unit=[‘ten‘,‘eleven‘,‘twelve‘,‘thirteen‘,‘fourteen‘,‘fifteen‘,‘sixteen‘,‘seventeen‘,‘eighteen‘,‘nineteen‘]
ten=[‘twenty‘,‘thirty‘,‘forty‘,‘fifty‘,‘sixty‘,‘seventy‘,‘eighty‘,‘ninety‘]
num=raw_input(">>")
def Num(num):
    if num==‘1000‘:
        print ‘one thousand‘
    elif len(num)==1:
        return unit[int(num)]
    elif len(num)==2 and num[0]==‘1‘:
        return ten_unit[int(num[1])]
    elif len(num)==2:
        first=num[0]
        tennum=ten[int(first)-2]
        second=num[1]
        if second==‘0‘:
            enlishword=tennum
        else:
            unitnum=unit[int(second)]
            enlishword=tennum+‘-‘+unitnum
        return enlishword
    elif num==‘100‘:
        print ‘one hundred‘
    elif len(num)==3 and num!=‘100‘:
        first=num[0]
        hundrednum=unit[int(first)]
        num=num[1:]
        num=Num(num)
        enlistword=hundrednum+‘ hundred ‘+‘and ‘+num
        print enlistword
    else:
        print "请输入0-1000之间的数字"
Num(num)

6–9. 转换.为练习 5-13 写一个姊妹函数, 接受分钟数, 返回小时数和分钟数. 总时间不
变,并且要求小时数尽可能大

def hour(minute):
    hourtime=minute/60
    minutetime=minute%60
    print "%d:%d"%(hourtime,minutetime)
hour(1340)

6–10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转.
比如,输入"Mr.Ed",应该返回"mR.eD"作为输出

string="Hello World"
string=string.swapcase()
print string

6–11.转换
(a)创建一个从整数到 IP 地址的转换程序,如下格式: WWW.XXX.YYY.ZZZ.
(b)更新你的程序,使之可以逆转换.

print ‘--------------(a)--------------‘
def format_ip():
    num = raw_input(‘Enter ip number(12 integer)‘)
    w = num[0:3]
    x = num[3:6]
    y = num[6:9]
    z = num[9:12]
    tmp = [w,x,y,z]
    ip = ‘.‘.join(tmp)
    return ip

if __name__ == ‘__main__‘:
    print format_ip()

print ‘------------------(b)----------------‘
def ip_format():
    ip=raw_input("enter ip:")
    num=ip.replace(‘.‘,‘‘)
    num=int(num)
    return num

if __name__ == ‘__main__‘:
    print ip_format()

6–12.字符串
(a)创建一个名字为 findchr()的函数,函数声明如下:
def findchr(string, char)
findchr()要在字符串 string 中查找字符 char,找到就返回该值的索引,否则返回-1.不能用
string.*find()或者 string.*index()函数和方法
(b)创建另一个叫 rfindchr()的函数,查找字符 char 最后一次出现的位置.它跟 findchr()工作
类似,不过它是从字符串的最后开始向前查找的.
(c)创建第三个函数,名字叫 subchr(),声明如下:
def subchr(string, origchar, newchar)
subchr()跟 findchr()类似,不同的是,如果找到匹配的字符就用新的字符替换原先字符.返回
修改后的字符串.

(a)

def findchr(string,char):
    lis=[]
    for i,j in enumerate(string):
        if j==char:
            lis.append(i)
    if len(lis)!=0:
        print lis
    else:
        print -1

findchr("hello haimianbaobao",‘k‘)

(b)

def rfindchr(string,char):
    string=string[::-1]
    num=len(string)-1
    if char in string:
        for i,j in enumerate(string):
            if j==char:
                print "最后一个字符串的索引为:",num-int(i)
                break
    else:
        print -1
rfindchr("hellohello","e")

(c)

def findchr(string,old,new):
    if old in string:
        lisstr=list(string)
        for i,j in enumerate(lisstr):
            if j == old:
                #lisstr[0]="p"
                lisstr[int(i)]=new
        string=‘‘.join(lisstr)
        print string
    else:
        print -1

findchr("hello haimianbaobao","h","p")
时间: 2024-12-08 10:03:12

核心编程第二版第六章习题的相关文章

Python核心编程第二版 第六章课后练习

6-4.算术.把测试得分放到一个列表中去,你的代码应该可以计算一个平均分. num = input("请输入成绩,成绩以空格分开") totalnum = 0 numbers = num.split(' ') numbers = list(map(int, numbers)) for num in numbers: totalnum += num print(totalnum//len(numbers)) 6-6.字符串.创建一个string.strip()的替代函数:接受一个字符串,

python基础学习09(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #什么是函数 #就是引用,创建,使用 #例子 def foo(): print '233' foo() #返回与函数类型 def foo1():#是一个过程 print 'hello world!' foo1() foo

python基础学习11(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #执行环境 #可调用对象 """ 许多的python 对象都是我们所说的可调用的,即是任何能通过函数操作符“()”来调用的对象.要调用可调用对象, 函数操作符得紧跟在可调用对象之后.Python 有4

python基础学习05(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #dict{键:值} #哈希 #注:字典是无顺序的,所以你懂的 #创建与赋值 dict1={} dict2={'name':'apply','avg':24,'sex':'man'} print dict1,dict2

python基础学习07(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #file与input output #文件对象 #简单说来,就是写入和读取的方式 #file(),open()2个操作都是一样的,一般推荐open() #语法 # open(name[, mode[, bufferin

python基础学习08(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #异常 """ NameError: 尝试访问一个未申明的变量 ZeroDivisionError:  除数为零 SyntaxError: 解释器语法错误 IndexError: 请求的索引超出序列范

python基础学习12(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #python class #面向对象编程oop思想,3个特性:封装.继承.多态,在其他方面的功能,比如重载,模拟等,也可以自定义自己需要的类 #在python中,面向对象主要2个:类和类实例 #类与实例 #类与实例有关

python核心编程第二版

初学Python这是一本有关Python开发的指南涵盖近期发布的Pyttlon版本的核心功能特性,而不仅仅是语法学习更多的高阶内容,如正则表达式.网络.多线程.图形用户界面.Web/CGl和Python扩展等包括几个全新的章节,关于数据库.网络客户端.Java/Jytt30n和Microsoft Office等 展示数以百计的代码片段.交互实例和大量加强您的Python技能的实用练习"对Wesley Chun<Python核心编程>第二版的漫长等待是值得的--它的深邃.它的全面,以及

Python 核心编程 (第二版) 中文高清pdf版【110M】高清下载

Python 核心编程是经典的Python指导书,在第一版的基础上进行了全面升级.全书分为两个部分:第1部分占据了大约三分之二的篇幅,阐释这门语言的“核心”内容,包括基本的概念和语句.语法和风格. Python对象.数字类型.序列类型.映射和集合类型.条件和循环.文件和输入/输出.错误和异常.函数和函数式编程.模块.面向对象编程.执行环境等内容:第2部分则提供了各种高级主题来展示可以使用Python做些什么,包括正则表达式.网络编程.网络客户端编程.多线程编程.图形用户界面编程. Web编程.数