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,'-'))

1074111-20200421105759482-1231886419.png

三次方格式化

{:-^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)

print(a.center(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)

详细了解参考:原文链接:https://blog.csdn.net/weixin_43412569/article/details/104886474

该问题也曾考虑使用str.replace(old,new)函数编程解决,但是会出现重复替换问题且代码不够简洁

注意:使用replace方法做替换时不能单单写成str.replace(‘a’,‘b’),因为replace()方法返回一个数值,但必须将这个值再次赋给str,即写成str=str.replace(‘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()函数更详细介绍:

https://www.runoob.com/python/python-func-ord.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值