- 本文是网课:Python语言程序设计国家精品——(北京理工大学 嵩天 、 黄天羽 、 礼欣)的学习笔记。
目录
3.1 数字类型及操作
3.2 实例3: 天天向上的力量
3.3 字符串类型及操作
3.4 模块2: time库的使用
3.5 实例4: 文本进度条
浮点数间运算存在不确定尾数,这不是BUG。
z=1.23e-4+5.6e+89j;z.real获得实部,z.imag获得虚部
每天上升1%,周末下降1%
#DayDayUpQ3
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))
写一个“给出x,求工作日努力x%能得到最终结果”的函数
#根据df参数计算工作日力量的函数
def dayUp(df):
dayup = 1.0
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:
dayfactor += 0.001
print("工作日的努力参数是:{:.10f},结果是{:.10f}".format(dayfactor,dayUp(dayfactor)))
没有真正的多行注释,三单引号本身是个字符串。
4种表示方法使得引号在字符文本中出现时的处理变的简单。
字符串逆序:newStr=Str[::-1]
字符串中转义符后面的字符当做字符本意来理解(也就是不会当做Python的语法元素)
eval函数将字符串去引号执行返回结果。
str函数执行语句将结果变为字符串。
>>> "1 + 1 = 2 " + chr(10004)
'1 + 1 = 2 ✔'
>>> "这个字符♉的Unicode值是:" + str(ord("♉"))
'这个字符♉的Unicode值是:9801'
>>> for i in range(12):
print(chr(9800+i),end="")
♈♉♊♋♌♍♎♏♐♑♒♓
方法:面向对象相关。必须要用 . 的形式来执行。
str.strip(chars)是将字符串str中两侧连续出现在chars中的字符去掉。
str = ','.join(str) ; 再str.split(',')可以对字符串进行分割。
其中<填充><对其><宽度>一块用。
直接给宽度的话,默认左对齐、空格填充。
<类型中>的c:字符形式(Unicode编码形式);
也可以将定义的字符串解析为时间变量。
per_counter()获取的是CPU的时间
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
a = '*' * i
b = '.' * (scale-i)
c = i * 10
print("{:^3.0f}%[{}->{}]".format(c,a,b))
time.sleep(0.1)
print("------执行结束------")
"\r"将光标退回到行首;默认end="\n";
import time
for i in range(101):
print("\r{:3}%".format(i),end="")
time.sleep(0.1)
用命令行来执行(IDLE屏蔽了\r功能):
import time
scale = 50
print("执行开始".center(scale//2,"-"))
start = time.perf_counter()
for i in range(scale+1):
a = '*' * i
b = '.' * (scale-i)
c = (i/scale) * 100
dur = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'-'))
获得用户输入的一个数字,可能是整数或浮点数,a,计算a的三次方值,并打印输出。
输出结果采用宽度20个字符、居中输出、多余字符采用减号(-)填充。
如果结果超过20个字符,则以结果宽度为准。
输入 | 输出 | |
示例 1 | |
|
代码:
a=input()
ans=pow(eval(a),3)
print("{:-^20}".format(ans))
读入一个整数N,N是奇数,输出由星号字符组成的等边三角形,要求:
第1行1个星号,第2行3个星号,第3行5个星号,依次类推,最后一行共N的星号。
输入 | 输出 | |
示例 1 | |
|
我的代码:
a=eval(input())
for i in range(a//2 + 1):
str1=' '*round((a-(2*i+1))/2)
str2='*'*(2*i+1)
print("{0}{1}{0}".format(str1,str2))
题解的代码:
a=eval(input())
for i in range(1,n+1,2):
print("{0:^{1}}".format('*'*i,n))
恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的对应关系如下:
原文: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
假设用户可能使用的输入包含大小写字母a~zA~Z、空格和特殊符号,请编写一个程序,对输入字符串进行恺撒密码加密,直接输出结果,其中空格不用进行加密处理。使用input()获得输入。
示例1: python is good
示例1: sbwkrq lv jrrg
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)