3.1 每天努力0.001
import math
dayup = math.pow((1.0+0.001), 365)
daydown = math.pow((1.0-0.001), 365)
print("向上:{:.2f},向下:{:.2f}".format(dayup, daydown))
3.2 每天努力0.005
import math
dayup = math.pow((1.0+0.005), 365)
daydown = math.pow((1.0-0.005), 365)
print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))
3.3 引入变量
import math
dayfactor = 0.001
dayup = math.pow((1.0+dayfactor), 365)
daydown = math.pow((1.0-dayfactor), 365)
print("向上:{:.2f}, 向下:{:.2f}".format(dayup, daydown))
3.4 每个工作日提高1%,休息日下降1%
factor=0.01
dayup=1
for i in range(365):
if i%7 in [6,0]:
dayup=dayup*(1-factor)
else:
dayup = dayup * (1 + factor)
print("工作日每天提高0.01,休息日降低0.01:{:.2f}".format(dayup))
3.5 每周工作五天,休息两天,休息日水平下降0.01,工作日要努力到什么程度才能赶上每天努力1%取得的的效果
# 参数不同,这段代码可共用
# def保留字用于定义函数
# df参数为占位符,表示dayfactor的简写,根据df参数计算工作日力量的函数
def dayUP(df):
dayup = 1 # 这是第一天
for i in range(365):
if i % 7 in [6, 0]:
dayup = dayup * (1 - 0.01)
else:
dayup = dayup * (1 + df)
return dayup # 这是最后一天
dayfactor = 0.01
# while保留字判断条件是否成立
# 条件成立时循环执行
while dayUP(dayfactor) < 37.78:
dayfactor += 0.001
print("工作日的努力参数是:{:.3f} ".format(dayfactor))
微实例3.1 星期的转换
#微实例3.1获取星期几字符串
weekstr="星期一星期二星期三星期四星期五星期六星期日"
weekid=eval(input("请输入星期数字(1-7):"))
pos = (weekid -1)*3
print(weekstr[pos:pos+3])
weekstr("一二三四五六日")
weekid=eval(input("请输入星期数字(1-7):"))
print("星期"+weekstr[weekstr -1])
【拓展】
微实例3.2 恺撒密码的加密运算
"""
恺撒密码原理:
原文:ABCDEFGHIGKLMNOPQRSTUWXYZ
密文:DEFGHIGKLMNOPQRSTUWXYZABC
原文(P)=(C-3)mod 26
密文(C)=(P+3)mod 26
"""
plaincode = input("请输入明文:")
for p in plaincode:
if ord("a") <= ord(p) <= ord("z"):
# 判断输入的明文为英文字符则执行加密算法,否则输入原明文字符
print(chr(ord("a") + (ord(p)-ord("a")+3) %26), end="")
# 先将明文字符的Unicode编码用ord()计算出来,再通过chr()进行转换成字符
# 先用原始字母减去字母a,计算出p与a相差多少,记作n。用a加上相差数,即可得到p的unicode编码。然后加上偏移量3,表示要将p加密为第a+n+4个字母。
# 此处的“%26”的含义是避免最后的unicode编码数值超出范围,假如输入x,y,z,a+n+3后对应到a,b,c
else:
print(p, end=" ")