《Python核心编程》第5章 数字 练习
来源:互联网 发布:python recvfrom 编辑:程序博客网 时间:2024/05/22 00:32
(a) 写一个函数,计算并返回两个数的乘积
(b) 写一段代码调用这个函数,并显示它的结果
# coding=utf-8__author__ = 'Ibuki Suika'def mul(x, y): return x * yif __name__ == '__main__': a = input('a=') b = input('b=') print(mul(a, b))
5-3 标准类型运算符.
写一段脚本,输入一个测验成绩,根据下面的标准,输出他的评分成绩(A-F)。
A: 90–100
B: 80–89
C: 70–79
D: 60–69
F: <60
# coding=utf-8__author__ = 'Ibuki Suika'def level(score): if score >= 90: return 'A' elif score >= 80: return 'B' elif score >= 70: return 'C' elif score >= 60: return 'D' else: return 'F'if __name__ == '__main__': s = input('score=') print(level(s))
5-4 取余。
判断给定年份是否是闰年。使用下面的公式:
一个闰年就是指它可以被4 整除,但不能被100 整除, 或者它既可以被4 又可以被100 整除。比如 1992,1996 和2000 年是闰年,但1967 和1900 则不是闰年。下一个是闰年的整世纪是 2400 年。
# coding=utf-8__author__ = 'Ibuki Suika'def is_leap_year(year): return year % 4 == 0 and year % 100 != 0 or year % 400 == 0if __name__ == '__main__': y = input('year=') if is_leap_year(y): print('leap year') else: print('not leap year')
5-5 取余。
取一个任意小于1 美元的金额,然后计算可以换成最少多少枚硬币。硬币有1美分,5 美分,10 美分,25 美分四种。1 美元等于100 美分。举例来说,0.76 美元换算结果
应该是 3 枚25 美分,1 枚1 美分。类似76 枚1 美分,2 枚25 美分+2 枚10 美分+1 枚5 美分+1枚1 美分这样的结果都是不符合要求的。
# coding=utf-8__author__ = 'Ibuki Suika'def change(dollar): money = dollar * 100 m25, money = divmod(money, 25) m10, money = divmod(money, 10) m5, m1 = divmod(money, 5) return int(m1), int(m5), int(m10), int(m25)if __name__ == '__main__': m = input('money=') print(change(m))
5-6 算术。
写一个计算器程序 你的代码可以接受这样的表达式,两个操作数加一个运算符:N1 运算符 N2. 其中 N1 和 N2 为整数或浮点数,运算符可以是+, -, *, /, %, ** 分别表示
加法,减法, 乘法, 整数除,取余和幂运算。计算这个表达式的结果,然后显示出来。
提示:可以使用字符串方法 split(),但不可以使用内建函数 eval().
# coding=utf-8__author__ = 'Ibuki Suika'def compute(expr): ls = expr.split(' ') if len(ls) != 3: raise ValueError try: m = float(ls[0]) n = float(ls[2]) except ValueError: raise ValueError else: op = ls[1] if op == '+': return m + n elif op == '-': return m - n elif op == '*': return m * n elif op == '/': return m / n elif op == '%': return m % n elif op == '**': return m ** n else: raise ValueErrorif __name__ == '__main__': s = raw_input('expr: ') try: print(compute(s)) except ValueError: print('wrong expression')
5-10 转换。
写一对函数来进行华氏度到摄氏度的转换。转换公式为C = (F - 32) * (5 / 9)应该在这个练习中使用真正的除法, 否则你会得到不正确的结果。
def f2c(f): return (f - 32) * (5.0 / 9)f = float(raw_input('f='))print f2c(f)
5-12 系统限制。
写一段脚本确认一下你的Python 所能处理的整数,长整数,浮点数和复数的范围。
import sysprint sys.maxintprint sys.long_infoprint sys.float_info
5–15. 最大公约数和最小公倍数。
请计算两个整数的最大公约数和最小公倍数。
# coding=utf-8__author__ = 'Ibuki Suika'def hcf(n, m): 'highest common factor' if not isinstance(n, (int, long)) or not isinstance(m, (int, long)): raise ValueError while True: if n == 0 or m == 0: break if (n > m): (n, m) = (m, n) (n, m) = (n, m % n) return ndef lcm(n, m): 'least common multiple' return n * m / hcf(n, m)if __name__ == '__main__': n = long(raw_input('number1=')) m = long(raw_input('number2=')) print hcf(n, m) print lcm(n, m)
5-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
def payment(pay, balance): i = 0 print 'Pymt#\tPaid\tBalance' while balance > 0: print '%d\t$%.2f\t$%.2f' % (i, pay, balance) i += 1 if balance > pay: balance -= pay else: print '%d\t$%.2f\t$%.2f' % (i, balance, 0) balance = 0balance = float(raw_input('Enter opening balance: '))pay = float(raw_input('Enter monthly payment: '))payment(pay, balance)
5-17 随机数。
熟读随机数模块然后解下面的题:生成一个有 N 个元素的由随机数 n 组成的列表, 其中 N 和 n 的取值范围分别为: (1 <N <= 100), (0 <= n <= 231 -1)。然后再随机从这个列表中取 N (1 <= N <= 100)个随机数出来, 对它们排序,然后显示这个子集。
# coding=utf-8__author__ = 'Ibuki Suika'from random import randint, choicedef rand_list(n, m): if not (1 < n <= 100) or (n < m): raise ValueError data = [randint(0, 2 ** 31 - 1) for i in xrange(n)] result = [choice(data) for i in xrange(m)] result.sort() return resultif __name__ == '__main__': n = input('count= ') m = input('choice= ') print rand_list(n, m)
- 《Python核心编程》第5章 数字 练习
- 《Python核心编程》(第二版) 第5章 数字
- Python核心编程---读书笔记:第5章 数字
- 《Python核心编程》第3章 Python基础 练习
- 《Python核心编程》第13章 面向对象编程 练习
- 《Python核心编程》第16章 网络编程 练习
- Python核心编程第15章正则表达式练习答案
- 《Python核心编程》第2章 快速入门 练习
- 《Python核心编程》第8章 条件和循环 练习
- 《Python核心编程》第9章 文件和输入输出 练习
- 《Python核心编程》第10章 错误和异常 练习
- 《Python核心编程》第12章 模块 练习
- 《Python核心编程》第14章 执行环境 练习
- 《Python核心编程》第15章 正则表达式 练习
- python核心编程-第12章课后练习答案
- 《Python核心编程》第5章 习题
- Python核心编程-练习
- python 核心编程&数字
- priority_queue用法
- Mongodb的索引
- Js code block
- makefile教程 之 makefile文件介绍
- xheditor java版富文本编辑器
- 《Python核心编程》第5章 数字 练习
- 求一个日期对应是星期几--Java代码
- 如何有效延长笔记本电池使用时间?
- Qt] 界面美化
- 现货发展的前景
- 类模板的成员函数
- 有用的链接
- 【fun】自制程序运行时间监测头文件
- 庆祝一下:公司在官网上公开发布了我写的API类库