python学习-第三课时-基本数据类型

数字类型及操作

整数类型

整数类型——与数学中整数的概念一致
-可正可负,没有取值范围限制
-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,'-'))

猜你喜欢

转载自blog.csdn.net/weixin_43921596/article/details/87554334