《Python核心编程》第5章 习题
来源:互联网 发布:网络与现实的性格差异 编辑:程序博客网 时间:2024/05/17 22:57
第4章无编程题故略过。
5-2.操作符。
(a)写一个函数,计算并返回两个数的乘积。
(b)写一段代码调用这个函数,并显示它的结果。
def mutiple(x, y): return x*yif __name__=="__main__": a = int(raw_input("input a number: ")) b = int(raw_input("input a number: ")) print mutiple(a,b)
5-3.标准类型操作符。写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)。
A:90~100 B:80~89 C:70~79 D:60~69 F:<60
while 1: number=int(raw_input('enter a number between 1 and 100: ')) if number<60: print "F" elif 60<=number<=69: print "D" elif 70<=number<=79: print "C" elif 80<=number<=89: print "B" elif 90<=number<=100: print "A" else: print "wrong number,please input again" break
5-4.取余。判断给定年份是否是闰年。使用下面的公式。
一个闰年就是指它可以被4整除,但不能被100整除,或者它既可以被4又可以被100整除。比如1992年、1996年和2000年是闰年,但1967年和1900年则不是闰年。下一个是闰年的整世纪是2400年。
while 1: year=int(raw_input('enter a year between 1000 and 9999: ')) if year<1000 or year>9999: break elif (year%4==0 and year%100!=0) or (year%400==0): print "leap year" else: print "not leap year"
5-5.取余。取一个任意小于1美元的金额,然后计算可以换成最少多少枚硬币。硬币有1美分、5美分、10美分、25美分4种。1美元等于100美分。举例来说,0.76美元计算结果应该是3枚25美分,1枚1美分。类似于76枚1美分,2枚25美分+2枚10美分+1枚5美分+1枚1美分这样的结果都是不符合要求的。
while 1: coin=int(raw_input('enter a coin between 1 and 100: ')) if coin<1 or coin>99: break n25=coin/25 coin=coin-25*n25 n10=coin/10 coin=coin-10*n10 n5=coin/5 coin=coin-5*n5 n1=coin print '25 cent: %d \n10 cent: %d \n5 cent: %d \n1 cent: %d'%(n25,n10,n5,n1)
5-6 算术。写一个计算器程序。你的代码可以接受这样的表达式,两个操作数加一个操作符:N1操作符N2。其中N1和N2为整型或浮点型,操作符可以是+、-、*、/、%、**,分别表示加法、减法、乘法、整型除、取余和幂运算。计算这个表达式的结果,然后显示出来。提示:可以使用字符串方法split(),但不可以使用内建函数eval()。
while 1: print "number1 (+|-|*|/|%|**) number2" expression=raw_input('please input a expression: ') if '+' in expression: a,b=expression.split('+',1) print float(a)+float(b) elif '-' in expression: a,b=expression.split('-',1) print float(a)-float(b) elif '**' in expression: a,b=expression.split('**',1) print float(a)**float(b) elif '/' in expression: a,b=expression.split('/',1) print float(a)/float(b) elif '%' in expression: a,b=expression.split('%',1) print float(a)%float(b) elif '*' in expression: a,b=expression.split('*',1) print float(a)*float(b) else: print "wrong expression" break
5-7.营业税。随意取一个商品金额,然后根据当地营业税额度计算应该交纳的营业税。
price=float(raw_input('please input a earn price: ')) print 'your tax is %10.2f' %round(price*0.2,2)
5-8.几何。计算面积和体积。
(a)正方形和立方体 (b)圆和球
num=float(raw_input('please input a real number: '))print 'the area of square is %f' %(num*num)print 'the area of circle is %f' %(math.pi*num*num)print 'the cubage of cube is %f' %(num**3)print 'the cubage of sphere is %f' %(math.pi*(num**3)*3/4.0)
5-10.转换。写一对函数来进行华氏度到摄氏度的转换。转换公式为C = (F - 32) * (5 / 9)应该在这个练习中使用真正的除法,否者你会得到不正确的结果。
def F2C(tem): Fahrenheit=float(tem) Celsius=(Fahrenheit-32)*(5/9.0) print '%fF equals to %fC°' %(Fahrenheit,Celsius)
5-11.取余。
(a)使用循环和算术运算,求出0~20之间的所有偶数。
(b)同上,不过这次输出所有的奇数。
(c)综合(a)和(b),请问辨别奇数和偶数的最简单的办法是什么?
(d)使用(c)的成果,写一个函数,检测一个整型能否被另一个整型整除。现要求用户输入两个数,然后你的函数判断两者是否有整除关系,根据判断结果分别返回True和False。
for num in range(0,21): if num%2==0: print '%d is even' %num else: print '%d is odd' %numdef divide(a,b): if a==0 and b==0: print 'wrong input number' return elif b==0: a,b=b,a if a<b and a!=0: if b%a==0: print 'true' else: print 'false' else: if a%b==0: print 'true' else: print 'false'
5-12.系统限制。写一段脚本确认一下你的Python所能处理的整型、长整型、浮点型和复数的范围。
print sys.maxintprint -sys.maxint-1print sys.float_infoprint sys.long_info
5-13 转换。写一个函数把由小时和分钟表示的时间转换为只用分钟表示的时间。
print "time format as HH:MM"timestr=raw_input('please input a time: ')def totalmin(time): HH,MM=time.split(':',1) print '%d total minutes' %(int(HH)*60+int(MM))totalmin(timestr)
5-14 银行利息。写一个函数,以定期存款利率为参数, 假定该账户每日计算复利,请计算并返回年回报率。
复利: 最终金额=本金*(1+第1期报酬率)*(1+第2期报酬率)*(1+第3期报酬率)* ….. *(1+第N期报酬率)
年回报率 = (1+第1期报酬率)*(1+第2期报酬率)*(1+第3期报酬率)* ….. *(1+第N期报酬率)
dayrate=float(raw_input("input a rate "))print 'a year rate of earn is %f' %((1+dayrate)**365-1)
5–15.最大公约数和最小公倍数。请计算两个整数的最大公约数和最小公倍数。
最大公约数,用相除法,求得余数,直到一个数为0,循环结束
最小公倍数就是两个数的乘积除以最大公约数
def gcd(a,b): while(a>0): c=int(a) a=int(b)%a b=c print 'gcd is %d' %bdef lcm(a,b): return int(a)*int(b)/gcd(a,b)
5-16 家庭财务。给定一个初始金额和月开销数, 使用循环,确定剩下的金额和当月的支出数, 包括最后的支出数。
balance=float(raw_input("Enter opening balance: "))paid=float(raw_input("Enter monthly payment: "))def payment(balance,paid): print ' Amount Remaining' print 'Pymt# Paid Balance' print '----- ----- ------' b=balance m=int(b/paid) b=b-m*paid while(b>0): m+=1 b=b-paid print '%d%11.2f%8.2f' %(0,0.00,balance) for month in range(1,m): print '%d%11.2f%8.2f' %(month,paid,balance-month*paid) print '%d%11.2f%8.2f' % (m,(balance-paid*(m-1)),0)payment(balance,paid)
5-17 随机数。熟读随机数模块然后解下面的题:
生成一个有 N 个元素的由随机数 n 组成的列表, 其中 N 和 n 的取值范围分别为: (1 <N <= 100), (0 <= n <= 231 -1)。然后再随机从这个列表中取 N (1 <= N <= 100)个随机数出来, 对它们排序,然后显示这个子集。
while 1: N1=random.randint(2,100) N2=random.randint(1,100) if N1>N2: breakprint 'N1 is %d, N2 is %d' %(N1,N2) list1=[]for i in range(0,N1): n=random.randint(0,2**31-1) list1.append(n) print list1list2=random.sample(list1,N2)list2.sort()print list2
1 0
- 《Python核心编程》第5章 习题
- 《Python核心编程》第2章 习题
- 《Python核心编程》第3章 习题
- 《Python核心编程》第6章 习题
- 《Python核心编程》第7章 习题
- 《Python核心编程》第8章 习题
- 《Python核心编程》第9章 习题
- 《Python核心编程》第10章 习题
- 《Python核心编程》第11章 习题
- 《Python核心编程》第12章 习题
- 《Python核心编程》第6章 习题
- 《Python核心编程》第7章 习题
- 《Python核心编程》第13章 习题
- 《Python核心编程》第7章 习题
- 《Python核心编程》第9章 习题
- 《Python核心编程》第12章 习题
- 《Python核心编程》第14章 习题
- python核心编程第12章习题
- Windows XP + Oracle 10g 完全卸载
- js验证日期格式
- 价值连城的macd战法
- [Jsp] 前 Jsp 笔记我也不清楚,留着吧
- 程序员生存定律--编程的起点与可能的失足
- 《Python核心编程》第5章 习题
- PAT1013. Battle Over Cities
- 千里走单骑
- mysql备份还原
- 黑马程序员_Java中几种排序算法
- __thread关键字
- 匹配数字正则表达式
- NYOJ 915 +-字符串
- 判别以邻接表方式存储的有向图中是否存在由顶点vi到顶点vj的路径(i≠j)