数字类型及操作
整数类型
整数类型——与数学中整数的概念一致
-可正可负,没有取值范围限制
-pow(x,y)函数:计算x^y,想算多大算多大
>>>pow(2,pow(2,15))
整数类型——4种进制表示形式
-十进制:1010,99,-217
-二进制,以0b或0B开头:0b010,-0B101
-八进制,以0o或0O开头:0o123,-0O456
-十六进制,以0x或0X开头:0x9a,-0X89
浮点数类型
浮点类型——与数学中实数的概念一致
-带有小数点及小数的数字
-浮点数取值范围和小数精度都存在限制,但常规计算可忽略
-取值范围数量级约-10^308至10^308,精度数量级10^-16
浮点数类型——浮点数间运算存在不确定尾数,不是bug
>>> 0.1+0.3
0.4
>>> 0.1+0.2
0.30000000000000004 (不确定尾数)
-round(x,d):对x四舍五入,d是小数截取位数
-浮点数间运算及比较用round()函数辅助
-不确定尾数一般发生在10^-16左右,round()十分有效
浮点类型——浮点数可以采用科学计数法表示
-使用字母e或E作为幂的符号,以10为基数,格式如下:
<a>e<b> 表示 a*10^b
-例如:4.3e-3 值为0.0043 9.6E5 值为960000.0
复数类型
复数类型——与数学中复数的概念一致
如果x^2=-1,那么x的值是什么?
-定义j=√(-1),以此为基础,构建数学体系
-a+bj被称为复数,其中,a是实部,b是虚部
复数类型——复数实例
z=1.23e-4+5.6e+89j
-z.real获得实部
-z.imag获得虚部
数值运算操作符
数值运算函数
天天向上的力量
问题1:1‰的力量
#DayDayUpQ1.py
dayup = pow(1.001,365)
daydown = pow(0.999,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
======================== RESTART: E:/学习/DayDayUpQ1.py ========================
向上:1.44,向下:0.69
问题2:5‰和1%的力量
5‰的力量
#DayDayUpQ2.py
dayfactor = 0.005
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
======================== RESTART: E:/学习/DayDayUpQ2.py ========================
向上:6.17,向下:0.16
1%的力量
#DayDayUpQ2.py
dayfactor = 0.01
dayup = pow(1+dayfactor,365)
daydown = pow(1-dayfactor,365)
print("向上:{:.2f},向下:{:.2f}".format(dayup,daydown))
======================== RESTART: E:/学习/DayDayUpQ2.py ========================
向上:37.78,向下:0.03
问题3:工作日的力量
-一年365天,一周5个工作日,每天进步1%
-一年365天,一周2个休息日,每天退步1%
#DayDayUpQ3.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))
======================== RESTART: E:/学习/DayDayUpQ3.py ========================
工作日的力量:4.63
问题4:工作日的努力
-工作日模式要努力到什么水平,才能与每天努力1%一样?
-A君:一年365天,每天进步1%,不停歇
-B君:一年365天,每周工作5天休息2天,休息日下降1%,要多努力呢?
#DayDayUpQ4.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))
======================== RESTART: E:/学习/DayDayUpQ4.py ========================
工作日的努力参数是:0.019
工作日模式,每天要努力到1.9%,相当于365模式每天1%的一倍!
字符串类型及操作
字符串类型的表示
字符串操作符
获取星期字符串
#WeekNamePrintV1.py
weekStr = "星期一星期二星期三星期四星期五星期六星期日"
weekId = eval(input("请输入星期数字(1-7):"))
pos = (weekId - 1) * 3
print(weekStr[pos: pos+3])
#WeekNamePrintV2.py
weekStr = "一二三四五六日"
weekId = eval(input("请输入星期数字(1-7):"))
print("星期" + weekStr[weekId-1])
字符串处理函数
打印十二生肖字符
for i in range(12):
print(chr(9800 + i),end="")
========================== RESTART: E:/学习/十二生肖字符.py ==========================
♈♉♊♋♌♍♎♏♐♑♒♓
字符串处理方法
字符串类型的格式化
槽:
time库的使用
time库基本介绍
时间获取
时间格式化
程序计时应用
文本进度条
“文本进度条”简单的开始
#TextProBarV1.py
import time
scale = 10
print("------执行开始------")
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("------执行结束------")
“文本进度条”单行动态刷新
#TextProBarV2.py
import time
for i in range(101):
print("\r{:3}%".format(i),end="")
time.sleep(0.1)
“文本进度条”实例完整效果
#TextProBarV3.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,'-'))