数字类型及操作
整数类型
与数学中整数的概念一致
- 可正可负,没有取值范围限制
- pow(x,y)函数 :计算x的y次方有多大,像算多大就算多大
四种进制表现形式
进制名称 | 进制表示特点 | 举例 |
二进制 | 以0b或者0B开头 | 0b010,-0B101 |
八进制 | 以0o或者0O开头 | 0o123,-0O321 |
十进制 | 15,20 | |
十六进制 | 以0x或者0X开头 | 0x9a,-0X89 |
浮点数类型
与数学中实数的概念一致
- 带有小数点及小数的数字
- 浮点数取值范围和和小数精度都存在限制,但常规计算可以忽略
- 取值范围数量级约为-10^308到10^308,精度数量级为10^-16
浮点数运算会产生不确定位数,这不是bug
- round(x,y):对x四舍五入,y是小数截取位数
- 浮点数间运算及比较用round函数辅助
- 不确定位数一般存在在10^-16,round()十分有效
浮点数可以采用科学计数法来表示
- 使用字母e或者E作为幂的符号,以10为基数,格式如下:<3>e<6>表示3*10^6
复数类型
与数学中的复数概念一致
- 定义j=根号(-1),以此为基础,构建数学体系
- a+bj被称为复数,其中a是实部,b是虚部
复数实例 z = 1.23e-4+5.6e+89j
- 实部是什么 z.real 获取实部
- 虚部是什么 z.imag 获取虚部
数值运算操作符
操作符是完成运算的一种符号体系
二元操作符有对应的赋值增强操作符
数值运算函数
一些以函数形式提供的数值运算功能
字符串类型及操作
字符串
由0个或多个字符组成的有序字符序列
- 字符串有单引号或双引号来表示
例: "请输入带有符号的温度值" 或者 '请输入带有符号的温度值'
- 字符串是一段有序序列,可以对其中的字符进行索引
例:"请"是"请输入带有符号的温度值"的第零个字符
字符串共两类四种表示方法
- 由一对单引号或一对双引号表示,仅表示单行字符串
- 由一对三单引号或一对三双引号表示,可以表示多行字符串
- 如果希望在字符串中出现单引号或双引号呢
例如 "这里有一个'单引号'啊" 或者 '这里又个"双引号"啊'
- 如果希望在字符串中既包括单引号又包括双引号呢
例如'''这里既有"双引号"又有'单引号'啊'''
字符串的序号
正向递增序号和反向递减序号
使用[ ];来获取字符串中一个或多个字符
- 索引:返回字符串中单个字符------<字符串>[M]
- 切片:返回字符串中的一段字符子串------<字符串>[M:N]
字符串切片的高级用法
使用[M:N:K]根据步长对字符串进行切片
- <字符串>[M:N] M缺失表示至开头,N缺失表示至结尾
- <字符串>[M:N:K] K表示步长,根据步长对字符串进行切片
- 特殊用法: [::-1]表示对字符串逆序输出
字符串的特殊用法
转义符\
- 转义符表达特定字符的本意
例: "这里有个双引号(\")" 输出结果为 这里有个双引号(")
- 转义符形成一些组合,表达一些不可打印的含义
例:\b后退 \n换行(光标移至下行首) \r回车(光标移至本行首)
字符串操作符
由0个或多个字符组成的有序字符序列
- x+n: 表示连接两个字符串x和n
- x*n或n*x:表示复制n此字符串x
- x in n :判断x是否为n的字串,返回True或者False
例:eval 函数将字符串类型变为一个数字
字符串处理函数
一些以函数形式提供的字符串处理功能
- len(x):长度函数,返回字符串x的长度;
- str(x):返回任意形式x对应的字符串类型;
- eval(x):将字符串x去掉引号变为Python可运行的语句;
- hex(x)或oct(x):返回整数形式x的十六进制或八进制小写形式的字符串
- chr(u):u为Unicode编码,返回其对应的字符形式;
- ord(x):x为字符,返回其对应的Unicode编码形式;
Unicode编码
Python字符串的编码方式
- 是一种统一字符编码,即几乎覆盖所有字符的编码方式
- 从0-1114111(0x10FFFF)空间,每个编码对应一个字符
- Python字符串中每个字符串都是Unicode编码
有趣的小例子
for i in range(12):
print(chr(9800+i),end = "" )
依次输出的是十二星座对应的图标字符
字符类型及操作
一些以方法形式提供的字符串处理功能
- str.lower():返回字符串的副本,返回的副本中全部字符小写;
- str.upper():返回字符串的副本,返回的副本中全部字符大写;
- str.split(sep=None):返回一个列表由str被sep分割成的部分组成, "A,B,C".split(",")结果为['A','B','C']
- str.count(sub):返回子串sub在字符串str中出现的次数;
- str.replace(old,new):返回字符串str副本,所有的old子串都被new所替换;
- str.center(width,”fillchar“):字符串str根据width宽度居中,如果字符串str长度不够,则使用"fillchar"字符在两侧填充;
- str.strip(chars):从str中去除其左右chars 中所列出的字符,”+ python+ ".strip("+ pn")返回结果为"ytho";
- str.join(iter):在iter变量除最后一个元素外都添加一个字符str,",".join(12345)返回结果为"1,2,3,4,5,"
字符串类型的格式化
槽
槽内部对格式化的配置方式
例:
- "{0:+^10}".format("love") 输出结果为"+++love+++"
- "{0:,.2f}".format("12345.6789") 输出结果为"123,45.68"
time库的使用
time库基本介绍
time库是python中处理时间的标准库
- 计算机时间的表达
- 提取获取系统时间并格式化输出功能
- 提取系统精准计时功能,用于程序性能分析
time 包括三类函数
时间获取
- time() 获取当时 时间戳,即计算机内部时间值,浮点数;表示从1970年1月1日0时0分开始到现在的一个以秒为单位的数值
- ctime() 获取当前时间并以易读方式表示,返回字符串 "星期 月 日 时 分 秒 年份"
- gmtime() 获取当时时间,表示为计算机可处理的时间格式
时间格式化
将时间以合理的方式展示出来
- strftime(tpl,ts):tpl是格式化模板字符串,用来定义输出结果,ts是计算机内部时间类型变量
- strptime(str,tpl):将字符串转化为一个计算机内部可操作的一个时间.str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输出结果
时间控制符
程序计时应用:
- 程序计时指起止动作所经历时间的过程
- 产生时间:sleep()
- 测量时间 :perf_counter()
实例4:文本进度条
文本进度条
- 使用字符串方式打印可以动态变化的文本进度条
- 进度条需要能在一行中根据程序的运行逐渐变化
如何获得文本进度条的变化时间
- 采用sleep()模拟一个持续的进度
- 似乎不呢么难
import time
print("执行开始".center(10,"-"))
time.sleep(1)
scale = 50
start = time.perf_counter()
for i in range(scale + 1):
a = "~"*i
b = "-"*(50 - i)
c = (i / scale)*100
dur = time.perf_counter() - start
print("\r{:3}%[{}->{}]{:.2f}s".format(c,a,b,dur),end = " ")
time.sleep(0.1)
time.sleep(1)
print("执行结束".center(10,"-"))