【Python】实例3:天天向上的力量与微实例:星期转换、恺撒密码

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=" ")

猜你喜欢

转载自blog.csdn.net/m0_65198365/article/details/123404938