①一些重要的知识
截取于中国大学慕课-Python语言程序设计-嵩天,仅供个人学习交流,转载注明原出处,请勿用于商业用途,侵删。
②编程练习
选自Python123网站,仅供个人学习交流,转载注明原出处,请勿用于商业用途,侵删。
1.天天向上的力量
工作日模式要努力到什么水平,才能与每天努力1%一样?
-A君: 一年365天,每天进步1%,不停歇
-B君: 一年365天,每周工作5天休息2天,休息日下降1% ,要多努力呢?
每周工作5天休息2天,计算工作日的努力参数是多少才能与每天努力1%一样。
要求如下:
(1) 一年365天,以第0天的能力值为基数,记为1.0;
(2) 当好好学习时,能力值相比前一天提高1%;当没有学习时,由于遗忘等原因能力值相比前一天下降1%;
day0=1
for i in range(365):
day0=day0*(1+0.01)
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)<day0:
dayfactor+=0.001
print("工作日的努力参数是: {:.3f}".format(dayfactor))
2.文本进度条
import time
kuan=50
print("开始执行".center(kuan//2,'-'))
start=time.perf_counter()
for i in range(kuan+1):
a=(i/kuan)*100
b='*'*i
c='.'*(kuan-i)
dur=time.perf_counter()-start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(a,b,c,dur),end="")
time.sleep(0.1)
print("\n"+"执行结束".center(kuan//2,'-'))
3.三次方格式化
获得用户输入的一个数字,可能是整数或浮点数,a,计算a的三次方值,并打印输出。
输出结果采用宽度20个字符、居中输出、多余字符采用减号(-)填充。
如果结果超过20个字符,则以结果宽度为准。
输入示例
10
输出示例
a=eval(input())
print("{:-^20}".format(pow(a,3)))
4.星号三角形
读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:
第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。
N=eval(input())
for i in range(1,N+1,2):#1到N+1,步长为2
print("{0:^{1}}".format('*'*i,N))
5.恺撒密码
恺撒密码是古罗*撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
密文:D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
对于原文字符P,其密文字符C满足如下条件:C=(P+3) mod 26
上述是凯撒密码的加密方法,解密方法反之,即:P=(C-3) mod 26
假设用户可能使用的输入包含大小写字母azAZ、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。
s=input()
t=""
for c in s:
if 'a'<=c<='z':
t+=chr(ord('a')+((ord(c)-ord('a'))+3)%26)
elif 'A'<=c<='Z':
t+=chr(ord('A')+((ord(c)-ord('A'))+3)%26)
else:
t+=c
print(t)
③总结
str.format()不仅能传数据类型,也能传字符类型
输入数据时用eval(input()),否则输入的是字符
\n \r等要写在双引号内部,如"\n输出"