本篇考察math函数的简单使用以及 input()输入 和 print()输出 的格式等。
实例3 :
一年365天,以第一天的能力为基数,记为1.0,当好好学习时能力比前一天提高0.1%,没有好好学习时能力比前一天下降0.1%,每天努力和每天放任,一年下来的能力相差多少?
我的思路
通过输入判断是一年都在努力学习(1)还是一年都没有努力学习(0),再使用pow()函数进行计算。
初次代码如下:
#实例3 天天向上的力量
#import math
start = 1
print("是否好好学习?1代表是,0代表否")
if eval(input())==1:
now = pow(1+0.001,365)
print("现在的能力:{:.3f}".format(now))
elif eval(input())==0:
now = pow(1-0.001,365)
print("现在的能力:{:.3f}".format(now))
else:
print("输入错误")
这里用math.pow(a,b)(要调用import math库)和直接用pow(a,b)(不需要调用)均可求出数值。
但是我发现当输入0的时候程序没有反应,第二次输入0时才执行elif的代码。经过后来查询得知,在
elif
语句中,input()
被调用了两次,这是不必要的。应该在最前面写一个input()函数赋值给一个变量,再对变量进行判断。而且start变量也没有用到。
修改后代码:(这里保留了3位小数)
print("是否好好学习?1代表是,0代表否")
panduan = eval(input())
if panduan==1:
now = pow(1.0+0.001,365)
print("现在的能力:{:.3f}".format(now))
elif panduan==0:
now = pow(1.0-0.001,365)
print("现在的能力:{:.3f}".format(now))
else:
print("输入错误")
参考代码
import math
dayup = math.pow(1.0+0.001,365)
daydown = math.pow(1.0-0.001,365)
print("向上:{:.2f},向下:{:.2f}.".format(dayup,daydown))
参考的代码比我的更加简洁,它并不是用的判断语句,而是直接把两种情况一起列出来了。
不过我觉得写代码还是要有自己的独立思考,这样才能进步。