第五章解答
2015-12-11 11:21
127 查看
1.长整型表示数的范围比整型更大。在python中,整型、长整型趋于统一,普通用户不用特别关注两者区别,仅当需引用C语言时需要特别注意。
2.操作符
(a)
(b)
3.
4.
5.
6.
7.
8.
9.
a.进制问题 python中0开头的数字表示八进制的数字
b.56l + 78l 代表的是长整数的和
10.
11.(1)
(2)对2进行取余运算,余数0是偶数,否则是奇数
(3)
12.
13.
14.
15.
16.
家庭财务。给定一个初始金额和月开销数,使用循环,确定剩下的金额和当月的支出数,包括最后的支出数。Payment()函数会用到初始金额和月额度,输出结果应该类似下面的格式(例子中的数字仅用于演示)。
Enter opening balance: 100.00
Enter monthly payment: 16.13
Amount Remaining
Pymt# Paid Balance
----- ---- -------
0 $ 0.00 $100.00
1 $16.13 $ 83.87
2 $16.13 $ 67.74
3 $16.13 $ 51.61
4 $16.13 $ 35.48
5 $16.13 $ 19.35
6 $16.13 $ 3.22
7 $ 3.22 $ 0.00
【答案】
代码如下:
balance = float(raw_input("Enter opening balance: ... "))
payment = float(raw_input("Enter monthly payment: ... "))
pymt = 1
print ' Amount Remaining'
print 'Pymt# Paid Balance'
print '----- ------ -----------'
print '%4d%15.2f%15.2f' % (0, 0.00, 100)
while (balance - payment*pymt ) >= 0:
pymt = pymt + 1
print '%4d%15.2f%15.2f' % (pymt - 1, payment, (balance - payment*(pymt - 1)))
print '%4d%15.2f%15.2f' % (pymt, (balance - payment*(pymt - 1)), 0)
17.
2.操作符
(a)
def product(x,y): return x * y
(b)
>>> print product(23,24) 552
3.
def result(x): if 90 <= x <= 100: return "A" elif 80 <= x <= 89: return "B" elif 70 <= x <= 79: return "C" elif 60 <= x <= 69: return "D" else: return "F"
4.
# -*- coding:utf-8 -*- def year_judge(year): if (int(year) % 4 == 0 and int(year) % 100 != 0) or int(year) % 400 == 0: return u"该年是闰年!" else: return u"该年是平年!"
5.
# -*- coding:utf-8 -*- def exchange(x): divide_25,mod_25 = divmod(x,25)[0],divmod(x,25)[1] if mod_25 == 0: return u"%d 美分换算结果是:%d枚25美分。" \ % (x,divide_25) else: divide_10,mod_10 = divmod(mod_25,10)[0],divmod(mod_25,10)[1] if mod_10 == 0: return u"%d美分换算结果是:%d枚25美分,%d枚10美分。" \ % (x,divide_25,divide_10) else: divide_5,mod_5 = divmod(mod_10,5)[0],divmod(mod_10,5)[1] if mod_5 == 0: return u"%d美分换算结果是:%d枚25美分,%d枚10美分,%d枚5美分。" \ % (x,divide_25,divide_10,divide_5) else: return u"%d美分换算结果是:%d枚25美分,%d枚10美分,%d枚5美分,%d枚1美分。"\ % (x,divide_25,divide_10,divide_5,mod_5) def cents_exchange(x): if x < 1: x = x * 100 else: x = int(x) print exchange(x)
6.
# -*- coding:utf-8 -*- def calculator(): global expression expression = raw_input("请输入一个表达式,可以计算加减乘除取余和幂运算,按Q退出。".decode("utf-8").encode("gbk")) if expression == "Q": return u"程序退出,再见"else: for i in ["+","-","**","/","%","*"]: if i in expression: numbers = expression.split(i) if "." in expression: N1 = float(numbers[0]) N2 = float(numbers[1]) else: N1 = int(numbers[0]) N2 = int(numbers[1]) if i == "+": return N1 + N2 elif i == "-": return N1 - N2 elif i == "*": return N1 * N2 elif i == "**": return N1 ** N2 elif i == "%": return N1 % N2 elif i == "/": return N1 / N2 while True: print calculator() if expression == "Q": break
7.
# -*- coding:utf-8 -*- sales = float(raw_input("请输入营业额".decode("utf-8").encode("gbk"))) rate = float(raw_input("请输入税率,以两位小数表示".decode("utf-8").encode("gbk"))) print u"应缴税额为:%f 元人民币。" % (sales * rate)
8.
# -*- coding:utf-8 -*- def geometry(): prompt = raw_input("计算正方形面积请输入1,立方体体积请输入2,圆面积请输入3,球体积请输入4".\ decode("utf-8").encode("gbk")) if prompt == "1": side = raw_input("请输入边长".decode("utf-8").encode("gbk")) print u"该正方形的面积是:%d" % (int(side) ** 2) elif prompt == "2": side = raw_input("请输入边长".decode("utf-8").encode("gbk")) print u"该正方体的体积是:%d" % (int(side) ** 3) elif prompt == "3": radius = raw_input("请输入半径".decode("utf-8").encode("gbk")) print u"该圆的面积是:%s" % (float(radius) ** 2 * 3.14) elif prompt == "4": radius = raw_input("请输入半径".decode("utf-8").encode("gbk")) print u"该球的体积是:%s" % (float(radius) ** 3 * 4 * 3.14 / 3) geometry()
9.
a.进制问题 python中0开头的数字表示八进制的数字
b.56l + 78l 代表的是长整数的和
10.
# -*- coding:utf-8 -*- def F_to_C(F): print u"%s℉等于%f℃" % (F,(float(F) - 32) * 5 / 9)
11.(1)
#取偶数 for i in range(0,21): if i % 2 == 0: print i, print #取奇数 for i in range(0,21): if i % 2 == 1: print i,
(2)对2进行取余运算,余数0是偶数,否则是奇数
(3)
# -*- coding:utf-8 -*- def judge_divide(x,y): if x % y == 0: print u"%d可以被%d整除!" % (x,y) else: print u"%d不能被%d整除!" % (x,y) def judge(): number1 = int(raw_input("请输入第一个整数".decode("utf-8").encode("gbk"))) number2 = int(raw_input("请输入第二个整数".decode("utf-8").encode("gbk"))) if number1 < number2: judge_divide(number2,number1) else: judge_divide(number1,number2)
12.
# -*- coding:utf-8 -*- import sys print sys.maxint print -sys.maxint - 1 print sys.float_info.max print sys.float_info.min print sys.long_info
13.
# -*- coding:utf-8 -*- time = raw_input("请输入时间,英文冒号:前为小时数,英文冒号:后为分钟数".decode("utf-8").encode("gbk")) hour = int(time.split(":")[0]) minute = int(time.split(":")[1]) print u"%d:%d等于%d分钟。" % (hour,minute,hour * 60 + minute)
14.
# -*- coding:utf-8 -*- def Annual_return_rate(rate): per_day_rate = rate / 365.0 investment = 1 interest = 1 * (1 + per_day_rate) ** 365 - 1 print u"年回报率为:",interest * 100,"%" Annual_return_rate(0.5)
15.
# -*- coding:utf-8 -*- def greatest_common_divisor(x,y): divisor = max(x,y) while divisor >= 1: if x % divisor != 0 or y % divisor != 0: divisor -= 1 else: print u"%d和%d的最大公约数是%d。" % (x,y,divisor) break def least_common_multiple(x,y): multiple = max(x,y) while multiple <= x * y: if multiple % x == 0 and multiple % y == 0: print u"%d和%d的最小公倍数是%d。" % (x,y,multiple) break else: multiple += 1
16.
家庭财务。给定一个初始金额和月开销数,使用循环,确定剩下的金额和当月的支出数,包括最后的支出数。Payment()函数会用到初始金额和月额度,输出结果应该类似下面的格式(例子中的数字仅用于演示)。
Enter opening balance: 100.00
Enter monthly payment: 16.13
Amount Remaining
Pymt# Paid Balance
----- ---- -------
0 $ 0.00 $100.00
1 $16.13 $ 83.87
2 $16.13 $ 67.74
3 $16.13 $ 51.61
4 $16.13 $ 35.48
5 $16.13 $ 19.35
6 $16.13 $ 3.22
7 $ 3.22 $ 0.00
【答案】
代码如下:
balance = float(raw_input("Enter opening balance: ... "))
payment = float(raw_input("Enter monthly payment: ... "))
pymt = 1
print ' Amount Remaining'
print 'Pymt# Paid Balance'
print '----- ------ -----------'
print '%4d%15.2f%15.2f' % (0, 0.00, 100)
while (balance - payment*pymt ) >= 0:
pymt = pymt + 1
print '%4d%15.2f%15.2f' % (pymt - 1, payment, (balance - payment*(pymt - 1)))
print '%4d%15.2f%15.2f' % (pymt, (balance - payment*(pymt - 1)), 0)
17.
# -*- coding:utf-8 -*- import random N = random.randint(2,100) i = 1 random_list1 = [] while i <= N: random_list1.append(random.randint(0,2 ** 31 - 1)) i += 1 h = 1 N2 = random.randint(1,100) random_list2 = [] while h <= N2: random_list2.append(random.choice(random_list1)) h += 1 print sorted(random_list2)
相关文章推荐
- 利用html5看雪花飘落的效果
- win7下的IP-主机名映射
- 编程, 细心永远都不嫌多(记录java连接数据库的一个错误)
- 初学 linux 笔记
- shell常用脚本
- 【Java数据结构】递归
- jsp中为什么后台传递过来的数据没有空格 而jsp页面上用EL表达式接收就会显示有空格
- HashMap的工作原理
- AngualrJS之服务器端通信
- Android应用开发之裁剪图片的自定义控件
- JavaScript基础篇(6)之函数表达式闭包
- Android应用程序资源的查找过程分析
- 10015---MySQL--innodb_flush_log_at_trx_commit参数
- [leetcode]Symmetric Tree
- jsp页面格式化
- PyQt5 学习笔记
- 黑马程序员——Java之多线程(下)
- 在Liunx中出现yum问题
- nginx 的安装
- 软件测试中JMeter和Ant实现自动负载测试