基本数据类型
整数类型
1.可正可负,没有取值范围限制
2.pow(x,y)计算x的y次方
3.四种进制表示形式
十进制、 二进制(以0b或0B开头:0b010、0B101)、八进制(以0o或0O开头:0o123、-0O456)、十六进制(以0x或0X开头:0x123、-0X456)
浮点类型
1.与数学中实数的概念一致
2.带有小数点以及小数的数字
3.浮点数取值范围和小数精度都存在限制,但常规计算可忽略(基本算无限制)
4.浮点数间运算存在不确定位数(由二进制转换为十进制造成的)
5.round(x,d):对x四舍五入,d是小数截取位数
6.使用字母e或E作为幂的符号,以10为基数,格式如下:< a > e < b >表示a*10的b次方;例如:4.3e-3的值为 0.0043
复数类型
1.与数学中复数的概念一致
2.用z.real获得实部,z.imag获得虚部
数值运算操作符
类型间可进行混合运算,生成结果为”最宽“类型
整数->浮点数->复数
例如:123+1.0=124.0(整数+浮点数=浮点数)
数值运算函数
一些以函数形式提供的数值运算功能
实例:天天向上的力量
问题1:
一年365天,每天进步1‰,累计进步多少呢?
答:1.001的365次方
一年365天,每天退步1‰,累计退步多少呢?
答:0.999的365次方
#daydayup.py
dayup= pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
问题2:工作日的力量
问:一年365天,一周5个工作日,每天进步1%,一周两个休息日,每天退步1%,这种工作日的力量,结果如何?
答:
#daydayup.py
dayup= 1.0
dayfactor = 0.01
for i in range(365):
if i % 7 in [6,0]:
dayup= dayup*(1-dayfactor)
else:
dayup= dayup*(1+dayfactor)
print("工作日的力量是:{:.2f}".format(dayup))
问题3:工作日的努力
问:工作日模式要努力到什么水平,才能与每天努力1%一样?
答:
#daydayup.py
def DayUp(df): #定义函数
dayup = 1;
for i in range(365):
if i%7 in [6,0]:
dayup = dayup*(1-0.01)
else:
dayup = dayup*(1+df)
return dayup
dayfactor = 0.01
while DayUp(dayfactor) < 37.78:
dayfactor += 0.001
print("工作日的努力参数值为:{:.3f}".format(dayfactor))
字符串
- 由0个或者多个字符组成的有序字符序列
- 字符串由一对单引号或者一对双引号表示
例:“请输入带有符号的温度值:”或者‘C’ - 字符串是字符的有序序列,可以对其中的字符进行索引
例:“请”是“请输入”的第0个字符
字符串有2类共四种表示方法:
1.由一对单引号或者一对双引号表示
例如:“请输入带有符号的温度值:”或者‘C’
2.由一对三单引号或者一三对双引号表示,可表示多行字符串
例如:‘’‘Python
语言’‘’
3.如果希望在字符串中包含双引号或者单引号,就要:‘这里有个双引号(“)‘或者"这里有个单引号(’)”
4.如果希望在字符串中既包含双引号又包含单引号,就要:’‘’ 这里既有单引号(‘)又有双引号(") ‘’’
5.使用 **[ ]**获取字符串中一个或多个字符 - 索引:返回字符串中单个字符 <字符串>[ M ]
例如:Temp[-1] - 切片:返回字符串中一段字符字串 <字符串>[M:N], M缺失表示至开头 , N缺失表示至结尾
- 切片的高级用法:<字符串>[M:N:K],根据步长K对字符串切片;例如:“零一二三四五六七八九十”[1:8:2] 的结果是“一三五七”
- “零一二三四五六七八九十”[::-1]结果是“十九八七六五四三二一〇”
6.*转义符* - 转义符表示特定字符的本意
例如:“这里有个双引号(“)” 结果为:这里有个双引号(”) - 转义符形成一些组合,表达一些不可打印的含义:**“\b”**回退 “\n” 换行(光标移动到下行首) “\r” 回车(光标移动到本行首)
字符串操作符
1.x+y:连接两个字符串x和y
2.nx或xn:复制n次字符串x
3.x in s:如果x是s的字串,返回True,否则返回False
字符串处理函数
1.len(x):返回字符串x的长度
2.str(x):任意类型x所对应的字符串形式
3.hex(x):整数x的十六进制小写形式字符串;例如:hex(452)结果为“0x1a9”
4.oct(x):整数x的八进制小写形式字符串;例如:oct(425)的结果为“0o651”
5.Unicode编码:Python字符串的编码方式
字符串处理方法
- “方法”在编程中是个专有名词
- “方法”特指< a >.< b >()风格中的函数< b >()
- 方法本身也是函数,但与< a >有关,< a >.< b >()风格使用
字符串类型的格式化
格式化是对字符串进行格式表达的方法
- 字符串格式化使用.format()方法,用法如下:<模板字符串>.format(<逗号分隔的参数>)
槽:
例如:format()方法的格式控制:
time 库的使用
- time库是Python中处理时间的标准库
- 计算机时间的表达
- 提供获取系统时间并格式化输出功能
- 提供系统级精确计时功能,用于程序性能分析
- ** import time **
time库包含三类函数
1.时间获取:time() ctime() gmtime
2.时间格式化:strftime() strptime()
3.程序计时:sleep() perf_counter()
time库的使用
1.time():获取当前时间戳,即计算机内部时间值,浮点数;用法:time.time()
2.ctime():获取当前时间并以易读方式表示,返回字符串;用法:time.ctime()
3.gmtine():获取当前时间,表示为计算机可处理的时间格式;用法:time.gmtime()
时间格式化
将时间以合理的方式展示出来
- 格式化:类似字符串格式化,需要有展示模板
- 展示模板由特定的格式化控制符组成
1.strftime(tpl,ts):
2.strptime(str,tpl):srt是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果
实例4:文本进度条
- 采用字符串方式打印可以动态变化的文本进度条
- 进度条需要能在一行中逐渐变化
代码:
#TextProBarV.py
import time
scale = 10 #定义宽度
print("-----begin-----")
for i in range(scale+1):
a = '*' * i
b = '.' * (scale - i)
c = (i/scale)*100
print("{:^3.0f}%[{}->{}]".format(c,a,b))
time.sleep(0.1)
print("-----over-----")
#TextProBarV.py
import time
scale = 50 #定义宽度
print("begin".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"+"over".center(scale//2,'-'))