python开三次⽅_python—天天向上的⼒量,⽂本进度条,三次⽅格式化,星号三⾓形,。。。
天天向上的⼒量
本节知识点:变量 函数 for循环 while循环
#每天进步千分之⼀,每天退步千分之⼀
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
#⼀年365天,每天进步5%。或 1% ,累计进步多少?
#⼀年365天,每天退步5%。 或 1% ,累计剩下多少?
dayfactor = 0.01
#dayfactor = 0.005
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
#⼀年365天, ⼀周5个⼯作⽇,每天进步1%
#⼀年365天,⼀周2个休息⽇,每天退步 1%
dayup = 1.0
dayfactor = 0.01
for i in range(365):
if i % 7 in [6,0]:
dayup = dayup * (1-dayfactor)
else:
dayup = dayup * (1+dayfactor)
print("⼯作⽇的⼒量:{:.2f}".format(dayup))
#⼯作⽇模式要努⼒到什么⽔平,才能与每天努⼒ 1% ⼀样
#A君:⼀年365天,每天进步 1% ,不停歇
#B君:⼀年365天,每天⼯作5天休息2天,休息⽇下降 1% ,要多努⼒才能和A君⼀样。
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 dayUP(dayfactor) < 37.78: #注:37.78是提前算出A君后,循环⽐较
dayfactor= dayfactor + 0.001
print("⼯作⽇的努⼒参数是:{:.3f}".format(dayfactor))
⽂本进度条
import time
scale = 50
print("执⾏开始".center(scale//2,"-")) # .center() 控制输出的样式,宽度为 25//2,即 22,汉字居中,两侧填充 -
start = time.perf_counter() # 调⽤⼀次 perf_counter(),从计算机系统⾥随机选⼀个时间点A,计算其距离当前时间点B1有多少秒。当第⼆次调⽤该函数时,默认从第⼀次调⽤的时间点A算起,距离当前时间点B2有多少秒。两个函数取差,即实现从时间点B1到B2的计时功能。
for i in range(scale+1):
a = '*' * i # i 个长度的 * 符号
b = '.' * (scale-i) # (scale-i) 个长度的 . 符号。符号 * 和 . 总长度为50
c = (i/scale)*100 # 显⽰当前进度,百分之多少
dur = time.perf_counter() - start # 计时,计算进度条⾛到某⼀百分⽐的⽤时
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end='') # \r⽤来在每次输出完成后,将光标移⾄⾏⾸,这样保证进度条始终在同⼀⾏输出,即在⼀⾏不断刷新的效果;
{:^3.0f},输出格式为居中,占3位,⼩数点后0位,浮点型数,对应输出的数为c;{},对应输出的数为a;{},对应输出的数为b;{:.2f},输出有两位⼩数的浮点数,对应输出的数为dur;end='',⽤来保证不换⾏,不加这句默认换⾏。
time.sleep(0.1) # 在输出下⼀个百分之⼏的进度前,停⽌0.1秒
print("\n"+"执⾏结果".center(scale//2,'-'))
三次⽅格式化
{:-^20} 或 {0:-^20} 两种写法,- 为填充符号 ^20 为宽度20填充并居中
a = pow(eval(input()),3)
print("{:-^20}".format(a))
{0:^20}中的0是⼀个序号,表⽰格式化输出的第0个字符,依次累加;
{0:^20}中的20表⽰输出宽度约束为20个字符;
{0:^20}中的^表⽰输出时居中对齐,若宽度⼩于字符串的实际宽度,以实际宽度输出;
星号三⾓形
n = eval(input())
for i in range(n):
if (i+1) % 2 ==1: #判断奇数,于1为奇数,于0为偶数(第⼆种写法 if i % 2 != 1:)
a = '*' * (i+1)
(n," "))
恺撒密码
s = input()
t = ""
for i in s:
if 'a' <= i <='z':
t = t+chr(ord('a')+((ord(i)-ord('a'))+3)%26)
elif 'A'<= i <='Z':
t = t+chr(ord('A')+((ord(i)-ord('A'))+3)%26)
else:
t = t+ i
print(t)
该问题也曾考虑使⽤place(old,new)函数编程解决,但是会出现重复替换问题且代码不够简洁
python格式化输出format注意:使⽤replace⽅法做替换时不能单单写成place(‘a’,‘b’),因为replace()⽅法返回⼀个数值,但必须将这个值再次赋给str,即写成place(‘a’,‘e’)才能使替换⽣效.
5.1 ord() 函数
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,
它以⼀个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,
如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发⼀个 TypeError 的异常。
下⾯三个例⼦说明ord()函数使⽤
ord('a')
1
97
1
ord('b')
1
98
1
ord('C')
1
67
1
注意:字母⼤⼩写不同,ASCII值不同这⾥是ord()函数更详细介绍:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论