python(Mooc)--基本数据类型

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.3333333333333
  • x//y整数除,x与y之整数商,10//3结果是3

(2)操作符号

  • +x,x本身
  • -y,y的负值
  • x % y,余数,模运算,10%3结果是1
  • x**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,'-'))

运行效果:
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章