PythonMOOC学习笔记(三)
Python语言程序设计
北京理工大学 嵩天等
http://Python123.io 练习编程
第三周(基本图数据类型)
- 浮点数间运算存在不确定尾数,不是bug
0.1+0.2 0.30000000004
计算机中浮点数用二进制表示,而二进制和十进制数不能全部对等,0.1只能用很接近的二进制数表示。 - round(x[,d]): 对x四舍五入,d是小数截取位数
浮点数间运算比较用round函数辅助
不确定尾数一般发生在10的-16次左右,round十分有效 - < a > e < b > 表示a乘以10的b次方
- z.real 获得实部 z.imag 获得虚部
- x/y 是浮点数。x//y 是整数除。
- x**y 表示x的y次幂
- x op= y 即x = x op y
- pow(x,y[,z]) 表示 (x**y)%z 余
- 字符串:正向递增序号,反向递减序号,<字符串>[M:N:K]
- +(连接两个字符), *(复制n次),in(x in y x是否在y中), len()(长度), str()(转化为字符串), hex()(把整数x的16进制写为小写字符串), oct()(整数x的八进制写为小写字符串), ord()(将字符返回Unicode形式), chr()(将Unicode转为字符形式)
- str.upper(); str.lower; str.count(); str.split(); str.replace()
- .format() “{0:=^20}”.format(“Python”) 位置,引导符号,填充,对齐(居中。<左对齐,>右对齐),输出宽度。
- .format() “{0:,.2f}”.format(12345.6789) 位置。引导符号,数字的千位分隔符,浮点数精度(字符串最大输出长度),整数类型(b,c,d,o,x,X)浮点数类型(e,E,f,%)
- time库
- import time 格式:time.< b >() 例子:time.time(), time.ctime(), time.gmtime()
- 格式化时间: strftime(tpl,ts) 例子:t = time.gmtime() time.strftime("%Y-%m-%d %H:%M:%S",t) 输出 ‘2018-01-26 12:55:20’
- 字符转为时间 timeStr = ‘2018-01-26 12:55:20’ time.strptime(timeStr,"%Y-%m-%d %H:%M:%S")
- 程序计时:start = time.perf_counter() end = time.perfcounter() end - start
- 程序休眠:time.sleep()
>>>def wait():
time.sleep(3.3)
>>>wait() #程序将等待3.3秒后再运行
- 文本进度条
import time
scale = 10
print("-----执行开始-----")
for i in range(scale+1):
a = i*10
b = '*'*i
c = '.'*(scale-i)
print("{0:<3d}%[{1}->{2}]".format(a,b,c))
#a = (i/scale)*100
#print("{0:<3.0f}%[{1}->{2}]".format(a,b,c)) 3是宽度 0是精度
time.sleep(0.1)
print("-----执行结束-----")
- 单行动态刷新
执行方法:win+r 然后输入 cmd 然后再输入路径回车
#单行动态刷新(在IDLE 中不会出现 \r 功能)
import time
for i in range(101):
print("\r{:3}%".format(i),end="") # \r 使得光标回到行首;end="" 使得print 不换行
time.sleep(0.1)
#在IDLE中运行不会出现 \r 的效果所以需要在其他里运行, win + r -> cmd -> 路径 -> enter
import time
scale = 50
print("执行开始".center(scale//2,'='))
time_start = time.perf_counter()
for i in range(scale+1):
a = (i/scale)*100
b = '*'*i
c= '.'*(scale-i)
dur = time.perf_counter() - time_start
print("\r{:<3.0f}%[{}->{}]{:>5.3f}s".format(a,b,c,dur),end="")
time.sleep(0.1)
print("\n"+"执行结束".center(scale//2,'='))