目录
中国大学慕课北京理工大学Python语言程序设计笔记
一、数字类型及操作
1.整数类型
(1)与数学中整数的概念一致,可正可负,没有取值范围限制
-常见的pow(x,y)函数:计算x的y次方,想算多大算多大
(2)有4种进制表示形式
①十进制:比如99
②二进制,以0b或0B开头,比如:0b010,-0B010
③八进制,以0o或0O开头,比如:0o123,-0O123
④十六进制,以0x或0X开头,比如:0x9a,-0X9a
2.浮点数类型
(1)与数学中实数的概念一致
带有小数点及小数的数字
浮点数取值范围和小数精度都存在限制,但常规计算可忽略
取值范围数量级约至
,精度数量级
(2)浮点数间运算存在不确定尾数,不是bug
例如0.1+0.2计算出来可能不等于0.3。不确定尾数一般发生在左右。
round(x,d)函数解决了这一问题,对x四舍五入,d是小数截取位数。因此在对浮点数间运算及比较用round()函数辅助。
(3)浮点数可以采用科学计数法表示
使用字母e或E作为幂的符号,以10为基数,格式如下:
<a>e<b> 表示a*
3.复数类型
与数学中复数的概念一致
如果=-1,定义j=根号-1,以此为基础,构建数学体系。a+bj称为复数,其中,a是实部,b是虚部。例如z=1+2j,用z.real获得实部,z.imag获得虚部。
4.数值运算操作符
(1)
二元操作符有对应的增强赋值操作符
(2)数字类型的关系
类型间可进行混合运算,生成结果为“最宽”类型。
例如:整数+浮点数=浮点数
5.数值运算函数
一些以函数形式提供的数值运算功能
二、天天向上的力量—持续的价值
1.1‰的力量:一年365天,每天进步1‰,累计进步多少?每天退步1‰,累计剩余多少?
dayup=pow(1.001,365)
daydown=pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
2.工作日的力量:工作五天每天进步1%,休息两天,每天退步1%
dayup, dayfactor = 1.0, 0.01
for i in range(365):
if i % 7 not in [6, 0]:
dayup = dayup * (1 + dayfactor)
else:
dayup = dayup * (1 - dayfactor)
print("向上5 天向下2 天的力量: {:.2f}.".format(dayup))
三、字符串类型及操作
1.字符串类型的表示
(1)字符串有2类共4种表示方法:
①由一对单引号或双引号表示,仅表示单行字符串
②由一对三单引号或三双引号表示,可表示多行字符串
(2)字符串的序号:正向递增序号(左边由0开始)和反向递减序号(右边由-1开始)
(3)字符串的使用:使用[ ]获取字符串中单个字符
①索引:返回字符串中单个字符 格式:<字符串>[M]
②切片:返回字符串中一段字符子串 格式:<字符串>[M:N]
(4)字符串切片高级用法:使用[M:N:K]根据步长对字符串切片
①<字符串>[M:N],M缺失表示至开头,N缺失表示至结尾
②<字符串>[M:N:K],根据步长K对字符串切片
字符串逆序:[::-1]
(5)字符串的特殊字符:转义符\
①转义符表达特定字符的本意
②转义符形成一些组合,表达一些不可打印的含义:"\b"回退 "\n"换行 (光标移动到下行首)"\r"回车(光标移动到本行首)
2.字符串操作符
由0个或多个字符组成的有序字符序列
获取星期字符串实例:
weekStr = "一二三四五六日"
weekId = eval(input("请输入星期数字(1—7):"))
print("星期"+weekStr[weekId-1])
3.字符串处理函数
一些以函数形式提供的字符串处理功能
4.字符串处理方法
一些以方法形式提供的字符串处理功能
5.字符串类型的格式化
格式化是对字符串进行格式表达的方式
(1)字符串格式化使用.format()方法,用法:<模板字符串>.format(<逗号分隔的参数>)
(2)
(3)槽内部对格式化的配置方式
四、time库的使用
1.time库基本介绍
(1)time库是Python中处理时间的标准库
①计算机时间的表达;②提供获取系统时间并格式化输出功能;③提供系统级精确计时功能,用于程序性能分析 。使用时需要先import time
(2)time库包括三类函数
2.时间获取
3.时间格式化
(1)时间格式化:将时间以合理的方式展示出来
strftime()函数与strptime()函数是互补关系:
strftime()函数是将计算机内部的时间输出为可读的字符串时间;strptime()函数是将可读的字符串时间输出为计算机内部的时间,不常用。
4.程序计时应用
(1)程序计时指测量起止动作所经历时间的过程
测量时间:per_counter()
产生时间:sleep()
五、文本进度条
1.简单的开始
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
a = '*' * i #a表示已经完成的进度(字符串与整数的乘积表示字符串被复制的次数)
b = '.' * (scale - i) #b表示剩余进度
c = (i/scale)*100 #输出与当前进度条和进度相关的百分比
print("{:^3.0f}%[{}->{}]".format(c,a,b))
time.sleep(0.1)
print("------执行结束------")
2.单行动态刷新
(1)刷新的本质:用后打印的字符覆盖之前的字符
要求:①不能换行:print()需要被控制;②要能回退:打印后光标退回到之前的位置\r
代码如下:
import time
for i in range(101):
print("\r{:3}%".format(i), end="")
time.sleep(0.1)
但是在IDLE中结果并不是单行刷新效果,因为IDLE本身是一个编写程序的开发环境,并不是程序运行的主要环境,为了保证其中参数运行效果, \r这个功能被屏蔽掉了;为了让程序正常运行,可以打开windows操作环境中命令行类似的相关工具,或在linux环境下打开B shell等一些文本的shell工具。
3.实例完整代码
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,'-'))
win徽标键+R,打开cmd,直接将文件拖拽进去敲回车运行。