python核心编程习题5-9章
来源:互联网 发布:软件度量指标 编辑:程序博客网 时间:2024/05/21 08:38
5-3 标准类型运算符. 写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)。 A: 90–100 B: 80–89 C: 70–79 D: 60–69 F: <60
6–8. 列表.给出一个整数值,返回代表该值的英文,比如输入 89 返回"eight-nine"。附加题:能够返回符合英文语法规则的形式
6–10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转.比如,输入"Mr.Ed",应该返回"mR.eD"作为输出.
6–12.字符串
(a)创建一个名字为 findchr()的函数,函数声明如下: def findchr(string, char) findchr()要在字符串 string 中查找字符char,找 到就返回该值的索引,否则返回-1.不能用string.*find()或者 string.*index()函数和方法
6–13.字符串.string 模块包含三个函数,atoi(),atol(),和 atof(),它们分别负责把字符串转换成整数,长整型,和浮点型数字.从 Python1.5 起,Python 的内建函数 int(),long(),float()也可以做相同的事了, complex()函数可以把字符串转换成复数.(然而 1,5 之前,这些转换函数只能工作于数字之上)
6–17.方法.实现一个叫 myPop()的函数,功能类似于列表的 pop()方法,用一个列表作为输入,移除列表的最新一个元素,并返回它.
9–1. 文件过滤. 显示一个文件的所有行, 忽略以井号( # )开头的行. 这个字符被用做
Python , Perl, Tcl, 等大多脚本文件的注释符号.
附加题: 处理不是第一个字符开头的注释.
9–2. 文件访问. 提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.
9–3. 文件信息. 提示输入一个文件名, 然后显示这个文本文件的总行数.
9–4. 文件访问. 写一个逐页显示文本文件的 程序. 提示输入一个文件名, 每次显示文本
文件的 25 行, 暂停并向用户提示"按任意键继续.", 按键后继续执行.
def fun1(num):
if num<60:print('F')elif num>=60 and num <70:print('D')elif num>=70 and num<80:print('C')elif num>=80 and num<90:print('B')elif num>=90 and num<=100:print('A')5-6 算术。写一个计算器程序 你的代码可以接受这样的表达式,两个操作数加一个运算符:N1 运算符 N2. 其中 N1 和 N2 为整数或浮点数,运算符可以是+, -, *, /, %, ** 分别表示加法,减法, 乘法, 整数除,取余和幂运算。计算这个表达式的结果,然后显示出来。提示: 可以使用字符串方法 split(),但不可以使用内建函数 eval().
def fun1(strs):
strs.strip() if strs.find('+')>0: num1,num2 = strs.split('+') return float(num1)+float(num2) elif strs.find('-')>0: num1,num2 = strs.split('-') return float(num1)-float(num2) elif strs.find('**')>0: num1,num2 = strs.split('**') return pow(float(num1),int(num2)) elif strs.find('*')>0: num1,num2 = strs.split('*') return float(num1)*float(num2) elif strs.find('/')>0: num1,num2 = strs.split('/') return float(num1)/float(num2) elif strs.find('%')>0: return int(num1) % int(num2) else: return 'No Result!'5-16
def fun1(n1,n2): cnt=0 print(cnt,' ','$','%.2f' % (cnt),' ',"$%.2f" % n1) while(n1-n2>0): print(cnt+1,' ','$%.2f' % n2,' ','$',"%.2f" % (n1-n2)) n1=n1-n2 cnt +=1 print(cnt+1,' ','$','%.2f' % n1,' ','$',"%.2f" % 0) if __name__ == '__main__': print('This is a Test script:\n') n1=input('Enter opening balance: ') n2=input('Enter monthly payment: ') print('Pymt#',' ','Paid',' ','Balance') print('-'*5,' ','-'*6,''*6,'-'*9) fun1(float(n1),float(n2)) print('-'*5,'The End','-'*5)
6–8. 列表.给出一个整数值,返回代表该值的英文,比如输入 89 返回"eight-nine"。附加题:能够返回符合英文语法规则的形式
def fun1(nums): str1='' lis1=[str(i) for i in range(1,10)] lisA=['one','two','three','four','five','six','seven','eight','nine'] lis=list(str(nums)) for i in lis: str1 +=lisA[lis1.index(i)]+'-' print('The Result is:\n',str1[:-1])
6–9. 转换.为练习 5-13 写一个姊妹函数, 接受分钟数, 返回小时数和分钟数. 总时间不变,并且要求小时数尽可能大.
def fun1(num): tmp=num%60 hh=num//60 mm=tmp//60 ss=tmp%60 print("HH:%d MM:%d SS:%d" %(hh,mm,ss))
6–10.字符串.写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转.比如,输入"Mr.Ed",应该返回"mR.eD"作为输出.
def fun1(num): lis=[] lis=list(num) print(num) for i in range(len(lis)): if lis[i].isupper(): lis[i]=lis[i].lower() elif lis[i].islower(): lis[i]=lis[i].upper() print(lis) num=''.join(lis) print(num)
6–12.字符串
(a)创建一个名字为 findchr()的函数,函数声明如下: def findchr(string, char) findchr()要在字符串 string 中查找字符char,找 到就返回该值的索引,否则返回-1.不能用string.*find()或者 string.*index()函数和方法
(b)创建另一个叫 rfindchr()的函数,查找字符 char 最后一次出现的位置.它跟 findchr()工作类似,不过它是从字符串的最后开始向前查找的.
def findchr(string,char): for i in zip(string,char.zfill(len(string))): print(list(i)) lis=[] i1=string.count(char) print(i1) if i1>0: lis=[i for i in string.split(char)] print(lis) print(lis.index(''))def rfindchr(string,char): for i in zip(string,char.zfill(len(string))): print(list(i)) lis=[] i1=string.count(char) print(i1) if i1>0: lis=[i for i in string.replace(char,'*')] print(lis)
6–13.字符串.string 模块包含三个函数,atoi(),atol(),和 atof(),它们分别负责把字符串转换成整数,长整型,和浮点型数字.从 Python1.5 起,Python 的内建函数 int(),long(),float()也可以做相同的事了, complex()函数可以把字符串转换成复数.(然而 1,5 之前,这些转换函数只能工作于数字之上)
def atoc(strs): if strs.rindex('-')>0: real = ''.join(list(strs)[:strs.rindex('-')] ) img = ''.join(list(strs)[strs.rindex('-')+1:]) else: real = ''.join(list(strs)[:strs.rindex('+')] ) img = ''.join(list(strs)[strs.rindex('+')+1:]) print(real) print(img) print(complex(float(real),float(img.strip('j')))) if __name__ == '__main__': print('-'*5,'The Start','-'*5) atoc('-1.23e+4-5.67j')
6–17.方法.实现一个叫 myPop()的函数,功能类似于列表的 pop()方法,用一个列表作为输入,移除列表的最新一个元素,并返回它.
def myPop(lis): print(lis) lis=lis[:-1] print(lis) return lis7–3. 字典和列表的方法。 (a) 创建一个字典,并把这个字典中的键按照字母顺序显示出来。 (b) 现在根据已按照字母顺序排序好的键,显示出这个字典中的键和值。
#7-3-(a) d3={'b':5,'g':5,'z':66} for k in sorted(d3.keys()): print(k,':',d3[k]) #7-3-(b) def fun1(): lis1=['a','b','c'] lis2=[1,2,3] fdict=dict(zip(lis1,lis2)) lis1=['a','b','c'] lis2=[1,2,3] fdict=dict(zip(lis1,lis2)) print(fdict)
#8-3>>>[i for i in range(10)][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> [i for i in range(20) if i%3==0][0, 3, 6, 9, 12, 15, 18]>>> [i for i in range(1,20) if i%3==0][3, 6, 9, 12, 15, 18]>>> [i for i in range(-20,870,220)][-20, 200, 420, 640, 860]#8-5 def getfactors(num): lis=[] for i in range(1,num+1): if (num%i)==0: lis.append(i) print(lis)
8–7. 全数. 完全数被定义为这样的数字: 它的约数(不包括它自己)之和为它本身. 例如: 6
的约数是 1, 2, 3, 因为 1 + 2 + 3 = 6 , 所以 6 被认为是一个完全数. 编写一个名为 isperfect() 的函数, 它接受一个整数作为参数, 如果这个数字是完全数, 返回1 ; 否则返回 0 .
def isperfect(num): lis2=[] for i in range(1,num+1): if num%i==0: lis2.append(i) else: continue print('the result','-'*5) print(lis2[:-1]) if sum(lis2[:-1])==num: return 1 return 0
#8-11 def fun1(): icnt=0 iready=0 dict1={} print('Enter total number of names: 5') while iready<5: strs=input('Please neter name '+str(iready)+':') if strs.count(',')==0: print('Wrong format... should be Last, First.') if icnt>=3: break else: icnt += 1 print('You have done this %d time(s)' % icnt) continue dict1.update(dict([strs.strip().split(',')])) iready +=1 dict1.update(dict([strs.strip().split(',')])) print('The sorted list (by last name) is:') for k in sorted(dict1.keys()): print(k+',',dict1[k])
9–1. 文件过滤. 显示一个文件的所有行, 忽略以井号( # )开头的行. 这个字符被用做
Python , Perl, Tcl, 等大多脚本文件的注释符号.
附加题: 处理不是第一个字符开头的注释.
#9-1def fun1(path): fi=open(path,'r') for line in fi.readlines(): line=line.strip('\n') if line[0].startswith('#'): continue if line.find('#')>0: line=line[:line.find('#')] print(line) fi.close()
9–2. 文件访问. 提示输入数字 N 和文件 F, 然后显示文件 F 的前 N 行.
#9-2def fun1(num,path): fi=open(path,'r') lis=[] lis=fi.readlines() for i in range(num): line=lis[i].strip('\n') print('%d: ' % (i+1),line) fi.close()
9–3. 文件信息. 提示输入一个文件名, 然后显示这个文本文件的总行数.
def fun1(path): fi=open(path,'r') lis=[] lis=fi.readlines() print('Total lines %d: ' % len(lis)) fi.close()
9–4. 文件访问. 写一个逐页显示文本文件的 程序. 提示输入一个文件名, 每次显示文本
文件的 25 行, 暂停并向用户提示"按任意键继续.", 按键后继续执行.
#9-4import osdef fun1(path): fi=open(path,'r') lis=[] cnt=0 lis=fi.readlines() for i in range(len(lis)): line=lis[i].strip('\n') print('%d: ' % (i),line) if i>23 and i%25==0: os.system('pause') continue else: pass fi.close()
- python核心编程习题5-9章
- 《Python核心编程》第9章 习题
- 《Python核心编程》第9章 习题
- 《Python核心编程》第5章 习题
- 《python 核心编程第二版第9章》习题
- python核心编程第5章课后习题
- python核心编程 9-10习题
- python核心编程第二章习题
- python核心编程习题11章
- Python核心编程第二章课后习题
- 《Python核心编程》第2章 习题
- 《Python核心编程》第3章 习题
- 《Python核心编程》第二章习题解答
- 《Python 核心编程》 第三章习题 3.10
- 《Python核心编程》第6章 习题
- 《Python核心编程》第7章 习题
- 《Python核心编程》第8章 习题
- Python核心编程第二章习题
- JSTL标签库
- cmd命令下cd命令对文件目录或路径的操作
- 各种螺旋矩阵
- HDOJ 1045
- System.Data.OleDb.OleDbException: 操作必须使用一个可更新的查询
- python核心编程习题5-9章
- Java连接MySQL中文乱码处理
- hdu 1691 Chinese Chess
- epoll的应用方式
- 使用pb制作图片之间的过渡效果
- 我的NHibernate曲折之行【转】
- ARM与X86不具备可比性 性能差距上千倍
- python核心编程习题11章
- HIVE学习笔记