课程笔记
pow(x,y) #计算x^y,想算多大算多大
#浮点数之间的运算比较用round()函数辅助
round(x,d) #对x四舍五入,d是小数截取位数
z=1.23e-4+5.6e+89j #z.real获得实部 z.imag获得虚部
3的3的99次方的后四位
字符串
- [1:8:2]表示的应该是从角标1~7中迈两步取一个数
- [::-1]表示逆序,即开头结尾都是空,所以是从开头到结尾,步长是-1,即从后向前逐步输出所有的字符串。
字符串代码示例
#WeekNamePrintV1.py
weekStr="星期一星期二星期三星期四星期五星期六星期日"
#input函数会将输入保存为字符串类型,需要用eval函数去掉两边的引号把它变成一个数字,并将数字存在变量weekId里
weekId=eval(input("请输入星期数字(1-7):"))
pos=(weekId-1)*3 #获取当前存放星期数组的角标
print(weekStr[pos:pos+3])
#WeekNamePrintV2.py
weekStr="一二三四五六日"
weekId=eval(input("请输入星期数字(1-7):"))
print("星期"+weekStr[weekId-1])
- str(x)与eval(x)做了相反的工作
一个有趣的星座实例
for i in range(12):
print(chr(9800+i),end="")
#使用end的一个参数来决定每一个print输出之后是否要换行
#如果end等于空,那么输出之后并不换行,所有字符串将在一行显示
第一行输出是加了end="",下边换行的则没有加。
- 既然是居中就有填充,此处使用等号填充
- 最后给定宽度省略格式,则默认左对齐,空格填充
- b二进制 c字符形式即Unicode形式 d十进制 o八进制 x十六进制 X大写的十六进制
TIME库
- time()的浮点数是从1970.1.1 零点零分到当前这个时间为止的以秒为单位的数值
-
strptime与strftime互补,strptime可以将字符串转化成时间
-
基于最开始的start时间开始计数
文本进度条
#TextProBarV1.py
import time
#文本进度条的宽度
scale = 10
print("------执行开始------")
for i in range (scale + 1):
#字符串与整数的乘积表示被复制的次数
a = '*' * i
b = '.' * (scale - i)
#进度条百分比
c = (i/scale)*100
#居中对齐,{:^3.0f}宽度为3,三个槽中依次是c,a,b
print("({:^3.0f}%[{}->{}]".format(c,a,b))
#每打印完一次休眠0.1s再继续
time.sleep(0.1)
print("------执行结束------")
运行结果
单行动态刷新
- 刷新的本质是用后打印的字符覆盖之前的字符
- 不能换行,要对print进行控制
- 打印后光标回退\r
#TextProBarV2.py
import time
for i in range (101): #要打印0%到100%
print("\r{:3}%".format(i),end="")
time.sleep(0.1)
IDLE运行结果(自动屏蔽\r)
命令行运行结果
完整效果代码
#TextProBarV3.py
import time
scale = 50
#str.center(width[, fillchar])
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,'-'))
IDLE与Python运行效果