是的我把第二题吃了
题目
和大多数编程语言一样 python 可以进行数学运算,本题是使用数字以及运算符号
符号 | 运算法则 |
---|---|
+ | 加法 |
- | 加法 |
/ | 除法 |
% | 取余 |
// | 整除 |
* | 乘法 |
** | 幂运算 |
< | 小于 |
> | 大于 |
<= | 小于等于 |
>= | 大于等于 |
加分要求
- 使用
#
在代码每行前写一个注解,说明下面代码的作用 - 在命令符(终端、shell)中运行 python 使用运算符把python当作计算器用
- 用
.py
脚本的方法计算一些东西。 - 所有结果有“错”么?了解为何基础练习中没有小数。搜索“浮点数”是什么。
- 用浮点数重写
ex3.py
,让它的计算结果更准确。
我的答案
3.0. 基础练习 + 3.1. 加注解
# 打印一行字 “我将要计算我拥有多少鸡”
print("I will now count my chickens:")
# 打印并计算母鸡的数量
print("Hens", 25 + 30 / 6)
# 计算公鸡的数量
print("Roosters", 100 - 25 * 3 % 4)
# 打印一行字 “现在我要计算鸡蛋的数量了”
print("Now I will count the eggs:")
# 计算鸡蛋的数量
print(3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6)
# 判断 3+2 是否小于 5-7
print("Is it true that 3 + 2 < 5 - 7?")
print(3 + 2 < 5 - 7)
# 加法、减法运算
print("What is 3 + 2?", 3 + 2)
print("What is 5 - 7?", 5 - 7)
# 作者卖萌
print("Oh, that's why it's False")
# 判断大小
print("Is it greater?", 5 > -2)
print("Is it greater or equal?", 5 >= -2)
print("Is it less or equal?", 5 <= -2)
黄色部分是和 python2 版结果不同的地方,原因见加分4题的说明。
3.3. 计算下载需要的时间
print("文件大小是1G,下载带宽是4M下水管,计算下载用几分钟:")
print(1024000 / ((4 * 1024) / 8) / 60)
(4 * 1024):4M 的准确带宽 = 4096 Kb/s。
/ 8:换算带宽 Kb/s 到 KB/s
1G = 1024000 KB
应该是无限333循环的,但小数最后一位不太对。why?请看3.4
3.4. python 的计算错误和浮点数
- 浮点数,简单说就是有小数部分的数例如 3.0。
- python2 在处理除法运算时整数相除只能保留整数部分,若想保留小数部分需要使用浮点数相除。python3 则可以正确处理。
目前了解的是所有常见的编程语言在十进制浮点数运算时都会遇到不准确的问题,python会尽力找一种精确的结果来显示,不过好在我们有其他办法获得更精确的十进制浮点数。
3.4.1. 如何精确 python 浮点数
python默认的浮点数是17位,我们通常用不到这么多,这样可以使用python内置函数
round()
或 格式化字符两种方式来精确小数位。而如果需要更多位数则可以考虑用 decimal 模块