第三章:基本数据类型
作者:互联网
一、数字类型及操作
1、整数类型
-
- 与数学中整数的概念一致
- 可正可负,无取值范围限制
- pow(x, y):计算x ^ y
- 有十进制、二进制(以0b或0B开头)、八进制(以0o或0O开头)、十六进制(以0x或0X开头)
>>> pow(2,100) 1267650600228229401496703205376 >>> pow(2,pow(2,15)) 141546103104495478900155302774495160134813071147238816
2、浮点数类型:
- 带有小数点及小数的数字
- 浮点数的取值范围数量级约为 -10307至10308,精度数量级10-16
- 浮点数间运算存在不确定尾数,这不是bug
- 为消除不确定尾数影响,浮点数间运算与比较用round( )函数辅助
- round(x, d):对x四舍五入,d是小数截取位数
- 浮点数可以采用科学计数法表示,使用e或E作为幂的符号:<a>e<b>表示a*10b
>>> 0.1 + 0.2 0.30000000000000004 >>> 0.1 + 0.2 == 0.3 False >>> round(0.1+0.2,1) == 0.3 True >>> 4.3e-3 0.0043 >>> 9.6E5 960000.0
3、复数类型:
- 与数学中复数概念一致
- 通过指令 z.real 获得实部,z.imag 获得虚部
>>> z = 1.23e-4 + 5.6e89j >>> z.real 0.000123 >>> z.imag 5.6e+89
4、数值运算操作符:
5、数值运算函数
二、实例分析—天天向上的力量
1 # 1‰ 的力量 2 #DayDayUpQ1.py 3 dayup = pow(1.001, 365) 4 daydown = pow(0.999, 365) 5 print('向上:{:.2f},向下:{:.2f}'.format(dayup,daydown))
>>>向上:1.44,向下:0.69
1 # 5‰和1%的力量 2 #DayDayUpQ2.py 3 dayfactor = 0.005 #dayfactor可设为0.005或0.01 4 dayup = pow(1+dayfactor, 365) 5 daydown = pow(1-dayfactor, 365) 6 print('向上:{:.2f},向下:{:.2f}'.format(dayup,daydown))
>>>向上:6.17,向下:0.16
1 # 工作日的力量,工作日(5天)每天进步1%,休息日(2天)每天退步1% 2 #DayDayUpQ3.py 3 dayup = 1.0 4 dayfactor = 0.01 5 for i in range(365): 6 if i % 7 in [6,0]: 7 dayup = dayup * (1 - dayfactor) 8 else: 9 dayup = dayup * (1 + dayfactor) 10 print('工作日的力量:{:.2f}'.format(dayup))
工作日的力量:4.63
1 # 工作日的努力,工作日模式在工作日每天要努力到什么水平才能与每天进步1%一样? 2 #DayDayUpQ4.py 3 def Dayup(df): 4 dayup = 1.0 5 for i in range(365): 6 if i % 7 in [6,0]: 7 dayup = dayup * (1-0.01) 8 else: 9 dayup = dayup * (1+df) 10 return dayup 11 12 everydayup = pow(1.01,365) 13 dayfactor = 0.01 14 while Dayup(dayfactor) < everydayup: 15 dayfactor += 0.001 16 print('工作日的努力参数是:{:.3f}'.format(dayfactor))
>>>工作日的努力参数是:0.019
三、字符串类型及操作
1、字符串
- 由一对单引号或双引号表示单行字符串
- 由一对三单引号或三双引号表示多行字符串(常用来多行注释)
- 字符串中有双引号,用单引号表示字符串;字符串中有单引号,用双引号表示字符串;字符串中既有单引号也有双引号,用三单引号表示字符串
2、字符串的序号
3、字符串的使用
4、字符串操作符
1 # 输入整数(1~7),输出对应的中文星期几 2 #WeekNamePrint.py 3 WeekStr = '一二三四五六日' 4 WeekId = eval(input('请输入星期数字(1-7):')) 5 print('星期' + WeekStr[WeekId-1])
5、字符串处理函数
>>> for i in range(26): print(chr(ord('A')+i),end='') ABCDEFGHIJKLMNOPQRSTUVWXYZ >>> '1 + 1 = 2' + chr(10004) '1 + 1 = 2✔'
6、字符串处理方法
7、字符串类型的格式化
- 格式化是对字符串进行格式表达的方式
- 字符串格式化使用.format()方法:<字符串>.format(<逗号分隔的参数>)
>>> '{0:=^20}'.format('PYTHON') '=======PYTHON=======' >>> '{0:*>20}{1:&^10}'.format('BIT','TAB') '*****************BIT&&&TAB&&&&' >>> '{:,.2f}'.format(1234567.89) '1,234,567.89' >>> '{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}'.format(425) '110101001,Ʃ,425,651,1a9,1A9' >>> '{:e},{:E},{:f},{:%},{:1f}'.format(3.141)
>>> '{0:e},{0:E},{0:f},{0:%},{0:.1f}'.format(3.141)
'3.141000e+00,3.141000E+00,3.141000,314.100000%,3.1'
四、time库的使用
1、time库概述
time库是Python中处理时间的标准库
time库包括三类函数:
- 时间获取:time() ctime() gmtime()
- 时间格式化:strftime() strptime()
- 程序计时: sleep() perf_counter()
2、时间获取
>>> import time >>> time.time() 1571133568.9642112 >>> time.ctime() 'Tue Oct 15 17:59:46 2019' >>> time.gmtime() time.struct_time(tm_year=2019, tm_mon=10, tm_mday=15, tm_hour=10, tm_min=0, tm_sec=4, tm_wday=1, tm_yday=288, tm_isdst=0)
3、时间格式化
>>> t = time.gmtime() >>> time.strftime('%Y-%m-%d %H:%M:%S',t) '2019-10-15 10:09:31' >>> timeStr = '2019-10-15 10:09:31' >>> time.strptime(timeStr,'%Y-%m-%d %H:%M:%S') time.struct_time(tm_year=2019, tm_mon=10, tm_mday=15, tm_hour=10, tm_min=9, tm_sec=31, tm_wday=1, tm_yday=288, tm_isdst=-1)
4、程序计时
- 程序计时指测量起止动作所经历的时间的过程
- 测量时间:perf_counter()
- 产生时间:sleep()
import time def wait(): time.sleep(10.1258) start = time.perf_counter() wait() end = time.perf_counter() print('{:.3f}s'.format(end-start))
五、文本进度条实例
1 #该文件应该在cmd下运行,实现单行刷新文本进度条的效果 2 #TextProBar.py 3 import time 4 scale = 50 5 print('执行开始'.center(scale//2,'-')) 6 start = time.perf_counter() 7 for i in range(scale+1): 8 a = '*' * i 9 b = '.' *(scale-i) 10 c = (i/scale)*100 11 dur = time.perf_counter() - start 12 print('\r{:^3.0f}%[{}->{}]{:.2f}s'.format(c,a,b,dur),end='')
13 time.sleep(0.5)
14 print('\n'+'执行结束'.center(scale//2,'-'))
标签:基本,10,第三章,format,数据类型,字符串,tm,time,dayup 来源: https://www.cnblogs.com/wps168/p/11679536.html