python核心编程v2.0 第五章习题答案
来源:互联网 发布:java base64 转换 编辑:程序博客网 时间:2024/06/01 09:43
1.
python标准整形类型等价于c的(有符号)长整型。32位取值范围-2的31次方到2的31次方减一,64位机器上整形将是64位。
长整型类型能表达的数值仅仅与机器支持的虚拟内存有关。是标准子集的超集。
2.
def multiple(number1 , number2 ) : count = number1*number2 return countif __name__ == '__main__' : count = multiple(7,8) print count
3.
def grade(number1) : grd = '' if 90<=number1<=100 : grd = 'A' elif 80<=number1<=89 : grd = 'B' elif 70<=number1<=79 : grd = 'C' elif 60<=number1<=69 : grd = 'D' elif number1<=60 : grd = 'F' else: print "not vaild" return grdif __name__ == '__main__' : grd = grade(79) print grd
4.
if __name__ == '__main__': while True : year = int(raw_input('input a year')) if year%4 == 0 and year%100 != 0 : print "leap year" elif year%400 == 0 : print "leap year" else: print "not leap year"
5.为了简单,用的贪心算法,讲道理要满足最少硬币应该要使用动态规划求解。贪心算法在某些情况非最优。
为了在有浮点数参加的运算里保留整数结果,使用地板除。
from __future__ import divisiondef changecoin(coin): n1 = coin//0.25 y1 = coin%0.25 n2 = y1//0.1 y2 = y1%0.1 n3 = y2//0.05 y3 = y2%0.05 n4 = y3//0.01 return n1,n2,n3,n4if __name__ == '__main__': c1,c2,c3,c4 = changecoin(float(raw_input('input a number <1 :'))) print int(c1),int(c2),int(c3),int(c4)
6.
eval()函数可以直接将string作为有效的表达式来进行求值
from __future__ import divisiondef count(list) : list[0] = int(list[0]) list[2] = int(list[2]) if list[1] == '+' : r = list[0]+list[2] elif list[1] == '-' : r = list[0]-list[2] elif list[1] == '*' : r = list[0]*list[2] elif list[1] == '/' : r = list[0]/list[2] elif list[1] == '%' : r = list[0]%list[2] elif list[1] == '**': r = list[0]**list[2] else: print "wrong operator" return rif __name__ == '__main__': while True : str1 = raw_input('input number operator number') list = str1.split(' ') # print list result = count(list) print result
8.
import mathdef cub(len) : s = len ** 2 v = len ** 3 return s,vdef sqare(len) : s = math.pi * (len ** 2) v = 4/3 * math.pi * (len ** 3) return s,vif __name__ == '__main__': s1,v1 = cub(2) s2,v2 = sqare(3) print s1,v1 print s2,v2
9.
a)
目标进制为2进制时,就用bin();
目标进制是8进制的时候用oct();
目标进制是10进制的时候用int();
目标进制是16进制的时候用hex();
int(‘017’,8) = 15
int(‘032’,8) = 26
b)
pycharm下运行是1342, cmd环境下也是
10.
from __future__ import divisiondef turn(F): C = (F-32)*(5/9) return Cif __name__ == '__main__': C = turn(49) print C
11.
1)
from __future__ import divisiondef choose(num): if num%2 == 0 : return 1 else: return 0if __name__ == '__main__': list = [] for i in range(21): index = choose(i) if index == 1 : list.append(i) print list
2)改index == 1为index == 0
3 ) 被2整除
4)
from __future__ import divisiondef choose(num1,num2): if num1>= num2: c = num1%num2 else: c = num2%num1 if c == 0 : return 1if __name__ == '__main__': while True: num1 = int(raw_input('number one\n')) num2 = int(raw_input('number two\n')) index = choose(num1,num2) if index == 1 : print True else: print False
12.复数未查到方法,欢迎评论告知
import sys#intprint sys.maxintprint -sys.maxint+1#longprint sys.long_info#floatprint sys.float_info
13.
# -*- coding: utf-8 -*-import time#time模块返回当前时间,取小时及分钟string = time.strftime('%I %M',time.localtime(time.time()))list = string.split(' ')print int(list[0])*60+int(list[1])
14.利率取万四
# -*- coding: utf-8 -*-from __future__ import divisiondef oneday(money) : money = money*4/10000 + money return moneyif __name__ == '__main__': m = 100 i = 1 while i<=365 : m = oneday(m) i = i+1 print "one year : %f" %m print (m-100)/100
15.
# -*- coding: utf-8 -*-from __future__ import divisiondef count(num1,num2) : if num1>=num2: t = num2 else: t = num1 i=t while i>=1 : if num1%i == 0 and num2% i == 0 : return i i = i-1def count2(num1,num2): t = num1*num2 if num1>=num2: y = num1 else: y = num2 i = y while i<=t : if i%num1 == 0 and i%num2 ==0 : return i i = i+1if __name__ == '__main__': while True: num1 = int(raw_input("number1:\n")) num2 = int(raw_input("number2 ;\n")) print count(num1,num2) print count2(num1,num2)
16.
# -*- coding: utf-8 -*-def payment(op,pay): print ' Amount Remaining' print 'Pymt# Paid Balance' print '---- ------ ---------' print '0 $0.00 $%f' % op i = 1 remain = op while remain-pay>0 : remain = remain -pay print '%d %f %f' % (i,pay,remain) i=i+1 print '%d %f %f ' % (i,remain ,0)if __name__ == '__main__': op = float(raw_input('Enter opening balance:\n')) pay = float(raw_input('Enter mouthly payment:\n ')) payment(op,pay)
结果:
Enter opening balance:100Enter mouthly payment: 16.17 Amount RemainingPymt# Paid Balance---- ------ ---------0 $0.00 $100.0000001 16.170000 83.8300002 16.170000 67.6600003 16.170000 51.4900004 16.170000 35.3200005 16.170000 19.1500006 16.170000 2.9800007 2.980000 0.000000
17.sort函数排序后会更改list的值
# -*- coding: utf-8 -*-import randomimport sysif __name__ == '__main__' : n = int(raw_input("number:\n")) list1 = [] for i in range(n) : list1.append(random.randint(0,sys.maxint-1)) print list1 y = int(raw_input('number again:\n')) list2 = [] for j in range(y): list2.append(random.choice(list1)) print list2 list2.sort() print list2
结果:
number:7[4, 19, 1, 9, 17, 0, 5]number again:5[4, 1, 1, 9, 4][1, 1, 4, 4, 9]
阅读全文
0 0
- python核心编程v2.0 第五章习题答案
- Python核心编程v2.0 第二章习题答案
- python核心编程v2.0 第三章习题答案
- python核心编程v2.0 第四章习题答案
- python核心编程v2.0 第六章习题答案
- python核心编程v2.0 第8章习题答案
- Python核心编程v2.0 第10章习题答案
- Python核心编程v2.0 第11章习题答案
- Python核心编程v2.0 第12章习题答案
- python核心编程v2.0 第14章习题答案
- python核心编程v2.0 第7章习题答案(下)
- python核心编程v2.0 第9章习题答案(上)
- Python核心编程v2.0 第9章习题答案(下)
- python核心编程-第六章习题答案
- python核心编程第五章课后习题
- python核心编程第七章习题答案(2)
- python核心编程第七章习题答案(3)
- python核心编程第八章习题答案(1)
- LINUX新建和增加SWAP分区
- 关于压测过程中服务器报26612: HTTP Status-Code=500 (Internal Server Error)
- 莫比乌斯反演学习笔记
- java判断list为空、xxx==null和xxx.equals(null)的区别
- 设置mysql允许外网访问
- python核心编程v2.0 第五章习题答案
- C#中File类的文件操作方法详解
- 暑期项目开发实训 Day16
- 【补充】 关于*(mmu_tlb_base + (virtuladdr >> 20))的理解
- MFC常识性知识汇总
- 打造通用的recycleview的adapter
- CDH&HDP概览
- 不用加减乘除做加法运算
- 566. Reshape the Matrix重塑矩阵