- 方法论:Py语言数字及字符串类型
- 实践能力:初步掌握字符串操作
数据类型及操作
- 整数:十进制,二进制(0b/0B),八进制(0o/0O),十六进制(0x/0X) 无限制 。
- 浮点类型:取值范围和精度够用,浮点数间运算存在不确定尾数,不是bug。
53位二进制表示小数部分;0.1+0.2 == 0.3False,使用round(x,d)四舍五入。
<a>e<b>:a*10的b次方。 - 复数 z.real;z.image
- 运算操作符
x/y 除,x与y之商10/3结果3.33333
x//y整数除,10//3结果3,%余数,x**y幂运算可开方
整数–》浮点数–》复数【扩展】 - 数值运算函数
abs(x);divmod(x,y),商余,(x//y,x%y)同时输出商和余数;pow(x,y[,z])幂余,(xy)%z**,[…]表示可省略
round(x,d),d默认0;max(a,b,c,d);min();**int()**取整,float(),complex()复数
实例3:天天向上的力量
pow(1.01,365)=37;pow(0.99,365)=0.03;
dayfactor=0.005
dayup=pow(1+dayfactor,365)
daydown=pow(1-dayfactor,365)
- 五天进步1%,2天退步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))# 4.63介于0.001和0.005进步之间
- 五天进步x%,2天退步1%,x多少赶上每天进步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))#0.019,如果每天进步1.9%一年进步将是1000倍
- 我的思考 连续进步11个月 休息一个月---->结果是20倍 坚持努力 适当放松
#DayDayUp.py
dayup=1.0
dayfactor = 0.01
for i in range(335):
dayup = dayup*(1+dayfactor)
for i in range(30):
dayup = dayup*(1-dayfactor)
print("连续工作11个月:{:.2f}".format(dayup))
字符串类型及操作
- 字符串切片高级用法
<字符串>[M:N:K] 根据步长K对字符串切片,MN默认则至开头结尾
<字符串>[::-1] 实现字符串逆序 - 字符串操作符
x+y:连接字符串;x*n:赋值n次字符串x;x in s:如果x是s子串返回True - 字符串处理函数
len(x);str(x)将数据转为字符串,与eval()函数功能相反;
hex(x),oct(x)整数x转16/8进制;Unicode–chr(u)—单字符—ord(x)—Unicode; - Python字符串每个字符都是Unicode编码字符
十二星座
for i in range(12):
print(chr(9800+i),end="")#print 内参数end可设置换行
- 字符串处理方法
方法指<a>.<b>()风格中的函数<b>(),<a>指对象,方法本身是与<a>有关的函数
字符串及变量也是<a>,存在方法
str.lower()|str.upper()大小写
str.split(sep)根据sep分割
str.count(substr)统计子串数目
str.replace(old,new)替换
str.center(width[,fillchar])str根据width居中,[…]内容表示可选,"p".center(3,"=")得为'=3='
str.strip(chars)从str中去掉左侧右侧chars中列出的字符"= python= ".strip(" =np")得"ytho"
str.join(iter)在iter变量除末尾元素外每个元素追加一个str,",".join("123")得"1,2,3" - 字符串类型格式化
槽:"{1} is {0}".format("He","afused")得afused is He,槽号可对应
:<填充><对齐><宽度>引导符号|单个字符|左<右>上^|宽"{0:=^3}".format("p")得'=p='
<,>数字千位分隔符;<.>浮点小数精度或子串最大输出长度;<类型>整数:b,c,d,o,x,X,浮点数e,E,f,%
print("{0:=^20,.2%}".format(25555.55))全部格式使用得===2,555,555.00%====
模块2 Time库使用
- time库是python处理时间的标准库,用于程序性能分析
时间获取
time.time()获取从1970:00:00至今时间戳,浮点数
time.ctime()获取易读字符串时间
time.gmtime获取计算机可处理时间格式
时间格式化
strftime(tpl,ts)tpl是格式化模板字符串,ts是计算机内部时间类型变量
import time
t = time.gmtime()
time.strftime("%Y-%m-%d %H:%M:%S",t)
#'2019-03-05 02:57:08'
%Y年;%m数字月;%B月;%b缩写;$d;%A星期;%a缩写;%H24时;%h12时;%p上下午;%M分;%S秒
strptime()解析自定义的时间字符串
timeStr = '2019-03-05 02:57:08'
time.strptime(timeStr,"%Y-%m-%d %H:%M:%S")
程序计时
sleep()休眠
def wait():
time.sleep(3.3)
wait()
perf_counter()计时起点不确定,连续调用差值
start = time.perf_counter()
end = perf_counter()
end - start
实例4:文本进度条
- 单行动态刷新
刷新本质是用后打印的字符覆盖之前的字符
不能换行,控制print()
要能回退:打印后光标退回之前的位置 \r,IDLE屏蔽\r 用cmd等
import time
for i in range(101):
print("\r{:3}%".format(i),end="")
time.sleep(0.1)
本文深入探讨Python中的数字和字符串类型,包括整数、浮点数、复数的表示和运算,以及字符串的切片、格式化和处理方法。同时,介绍了Python标准库time的使用,包括时间获取、格式化和计时功能。
1693

被折叠的 条评论
为什么被折叠?



