文章目录
1.数字类型及操作
1.1 整数类型
(1)与数学中的整数概念一样
- 可正可负,没有取值范围限制
pow(x,y)
函数:计算x的y次方。比如pow(2,100),就是2的100次方
(2)4种进制表示形式
- 十进制:1010,99
- 二进制:以0B或0b开头:0B1110,0b11
- 八进制:以0o或0O开头:0O123,-0o456
- 十六进制:以0x或0X开头:0X89,-0x56
1.2 浮点数类型
(1)与数学中实数概念一样
- 带有小数点及小数的数字
- 浮点数取值范围和小数精度都存在限制,但常规计算可忽略
- 取值范围数量级约为-10308至10308,精度数量级10-16
(2)浮点数间运算存在不确定位数,不是bug,原因如下:
(3)round函数:解决浮点数尾数带来的计算问题:
>>>0.1 + 0.2 == 0.3
False
>>>round(0.1 + 0.2, 1) == 0.3
True
这里引出round函数
round(x,d)
:对x四舍五入,d是小数截取位数
(4)科学计数法
- 使用字母e或E作为幂的符号,以10为基数,格式如下:
<a>e<b>
表示a10b。4.3e-3即4.310-3=0.0043
1.3 复数类型
(1)与数学的复数概念一样
- 定义j=√(-1),以此为基础,构建数学体系
- -a+bj被称为复数,其中a是实部,b是虚部
1.4 数值运算操作符
(1)运算法则
与数学中的运算符一样,都有加减乘除,有区别的是
x/y
,除法产生的结果是浮点数,10/3结果是3.3333333333333x//y
整数除,x与y之整数商,10//3结果是3
(2)操作符号
+x
,x本身-y
,y的负值x % y
,余数,模运算,10%3结果是1x**y
,①幂运算,x的y次幂,xy②当y是小数时,开方运算,10**0.5=√10
(3)二元操作符对应的增强赋值操作符
(4)数字类型的关系
类型间可以进行混合运算,生成结果为“最宽”类型
- 三种类型存在一种逐渐“扩展“或”最宽”的关系:
整数 -> 浮点数 ->复数
- 举个例子:123 + 4.0 = 127.0 (整数 + 浮点数 = 浮点数)
1.5 九个数值运算函数
2.字符串类型及操作
2.1 字符串类型的表示
(1)字符串有2类共4种表示方法
- 由一对单引号或双引号表示,仅表示单行字符串,如
"请输入温度值:" 或者 'c'
- 由一对三单引号或三双引号表示,可表示多行字符串
'''python
语言'''
- 如果希望在字符串中包含双引号或单引号呢?
'这里有个双引号(")' 或者 "这里有个单引号(')"
- 如果希望在字符串中既包括单引号又包括双引号呢?
'''这里既有单引号(')又有双引号(")'''
(2)字符串的序号
(3)字符串的使用
使用[ ]获取字符串中的一个或多个字符
-
索引:返回字符串的单个字符
<字符串>[M]
举例:"请输入带有符号的温度值:"[0]
或者TempStr[-1]
-
切片:返回字符串中的一段字符子串
<字符串>[M,N]
举例:"请输入带有符号的温度值:"[1,3]
或者TempStr[0:-1]
(4)字符串切片的高级用法
使用[M:N:K]根据步长对字符串切片
<字符串>[M:N]
,M缺失表示至开头,N缺失表示至结尾。
举例:“012345678”[:3]
结果是"012"<字符串>[M:N:K]
,根据步长K对字符串切片,它指的是从字符串第一位置开始,到第N位置前结束(不含N),以步长为K获取字符。
举例:"01234567"[1:8:2]
结果是"135"
举例:"01234567"[::-1]
结果是"76543210"
(5)字符串的特殊字符
- 转义符\ : 表达特定字符的本意
举例:"这里有个双引号(\")"
结果为 这里有个双引号(") "\b"回退
"\n"换行
"\r"回车
2.2 三个字符串操作符
2.3 五个字符串处理函数
2.4 八个字符串处理方法
2.4 字符串类型的格式化
字符串格式化是用.format()方法,用法如下:
<模板字符串>.format(<逗号分隔的参数>)
这里涉及到槽的概念,槽默认是一一对应的
当然也可以通过序号指定对应(注意从0开始),看下面的例子:
我们也可以对槽内部数据进行格式化配置:
{<参数序号>:<格式控制标记>}
看两个例子:
//这个例子针对前三个
>>> "{0:=^20}".format("PYTHON")
'=======PYTHON======='
>>> "{0:*>20}".format("bit")
'*****************bit'
>>> "{:10}".format("bit")
'bit '
//这个例子针对后三个
>>> "{0:,.2f}".format(12345.6789)
'12,345.68'
>>> "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
'110101001,Ʃ,425,651,1a9,1A9'
>>> "{0:e},{0:E},{0:f},{0:%}".format(3.14)
'3.140000e+00,3.140000E+00,3.140000,314.000000%'
3.time库的使用
3.1 时间获取
3.2 时间格式化
- 格式化:类似字符串格式化,需要有展示模板
- 展示模板由特定的格式化控制符组成
- 实现时间格式化的方法:
strftime(tpl,ts)
方法
下面是格式化控制信息:
strptime(str,tpl)
方法:将一段字符串变成时间
3.3 程序计时应用
- 程序计时指的是测量起止动作所经历的时间历程
- 测量时间:
perf_counter()
函数
- 产生时间:
sleep()
函数
4.实例:文本进度条
(1)概述
- 采用字符串方法打印可以动态变化的文本进度条
- 进度条需要能在一行中逐渐变化
(2)单动态刷新
- 刷新的本质:用后打印的字符覆盖之前的字符
- 不能换行:prinf()需要被控制
- 要能后退:打印后光标退回之前的位置 \r
(3)代码与效果
#textProbar.py
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,'-'))
运行效果: