python学习2019/05/09

字符串

字符串的使用,
‘1,2,3,4,5,6,7,8,9’【M】
索引,
M = 0 为取开头第一个字符
M = -1 为取末尾第一个字符

’1,2,3,4,5,6,7,8,9‘【m:n:k】
切片,
m 开头,缺失为0,开头
N 结尾,缺失为至结尾
K 步长,K=2 为‘2,4,6,8’
K=-1 , 为‘9,8,7,6,5,4,3,2,1’
相当于逆序

转义符
\b,回退 . 往前回退一个字符
\n,换行 ,到下一行首
\r, 回车 , 到当前行首

字符串操作符
x+y,链接两个字符串
x*n , 复制n个字符串x
x in s ,如果X是s的子串,返回true,否则返回flase

字符串处理函数
len(x) 计算字符串长度
str(x)把任何对应的字符变为字符串格式
hex(x) 转16进制
oct(x)转8进制
chr(u)把unicode 编码,返回其对应字符
ord(x)把字符,返回其对应的unicode编码

#WeekStr = ‘一二三四五六日’
#WeekId = eval(input(‘请输入星期数字(1-7):’))
#print(‘星期’+WeekStr[WeekId-1])

for i in range(12):
print(chr(9800+i),end=’’)

字符串处理方法
方法在编程中是一个专有名词
方法特指.() 风格函数《b》()
方法本身也是函数,但与《a》有关
常用方法
str.lower(), str.upper()
全部字符变小写,大写

str.split(sep= None)
返回列表,根据sep被分隔的部分组成
‘a,b,c’.split(’,’) = [‘a’,‘b’,‘c’]

str.count(sub)
返回sub在str中出现的次数
‘aaaaaa,bbbbb’.count(‘a’)= 6

str.replace(old,new)
返回str副本,将old字符串替换为new字符串
‘aaabbb’.replace(‘b’,‘a’) = ‘aaaaaa’

str.center(wight[,fillchar]) fillchar 可选
字符串根据wight居中,fillchar为填充符
’光‘.center(20,’-’) = ’---------光----------‘

str.strip(chars)
从str中去掉在其左侧和右侧chars中列出的字符
’= python =‘.strip(’=np’)
结果为’ytho‘

str.join(iter)
在iter变量除最后元素外每个元素后增加一个str
‘,’.join(‘12345’)
’1,2,3,4,5‘ #主要用于字符串分隔等

字符串类型的格式化
.format()方法

‘{0}:计算机{1}的CPU占用率为{2}%’.format(‘2019-05-09’,‘C’,10)
在不指定的情况下0,1,2,按照默认从左到右的顺序
也可以用,0,1,2,3,4进行指定顺序
槽内部对格式化的配置方式
{《参数序号》:《格式控制标记》}
:,引导符号
《填充》 用于填充的单个字符
《对齐》,<左对齐,>右对齐,^居中对齐
《宽度》,槽设定的输出宽度

‘{0:-^20}’.format(‘python’)
输出’-----------python-----------’
‘{0:*》20}’.format(‘BIT’)
输出‘*************BIT’
‘{:10 }.format(‘BIT’)’
输出’BIT 我是空格 ’

《,》数字的千位分隔符
《.精度》浮点数小数精度或字符串最大输出长度
《类型》整数类型b,c,d,o,x,X
浮点类型e,E,f,%
‘{0:。,2f}’。format(12345.6789)
输出‘12,345.68’
,转变用千位分隔符分隔
‘{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}’.format(425)
输出’110101001,Ʃ,425,651,1a9,1A9‘
对应二进制,编码形式,10进制,8进制,16进制,大写16进制
‘{0:e},{0:E},{0:f},{0:%}’。format(3.14)
3.140000e+00,3.140000E+00,3.140000,314.000000%
科学记数法e,E 形式表示,f用通常的记数法表示
以百分数表示

time库

包括三类函数

时间获取
time()
time.time()
1557411479.417789
获取当前时间戳,即计算机内部时间值,返回浮点数,格林威治时间
ctime()
Thu May 9 22:18:28 2019
获取当前时间并以易读方式表示,返回字符串
gmtime()
time.struct_time(tm_year=2019, tm_mon=5, tm_mday=9,tm_hour=14,
tm_min=18, tm_sec=41, tm_wday=3, tm_yday=129, tm_isdst=0)
获取当前时间,表示为计算机可处理的格式

时间格式化
strftime(tpl,ts)tpl是格式化模板字符串,用来定义输出效果
ts是计算机内部时间类型变量
%Y,0000-9999,年,%m,01-12,月,%B,月份名称:April,等
%b,月份名称缩写,Apr,等,%d,01-31,日期,%A,星期,Monday
%a,小写星期,Mon,%H,小时(24小时制),00-23,
%I,小时(12小时制),01-12,%p,上/下午,AM/PM,
%M,分钟,00-59,%S,秒,0-59,
import time
a = time.gmtime()
b = time.strftime(’%Y-%m-%d %H:%M:%S’,a)
print(b)
输出:2019-05-09 14:21:27
strptime(str,tpl)str是字符串形式的时间值
tpl,是格式化模板字符串,用来定义输入效果
import time
a = ‘2019-05-09 22:33:44’
b = time.strptime(a,’%Y-%m-%d %H:%M:%S’)
print(b)
输出:time.struct_time(tm_year=2019, tm_mon=5, tm_mday=9, tm_hour=22,
tm_min=33, tm_sec=44, tm_wday=3, tm_yday=129, tm_isdst=-1)

程序计时
sleep(s)产生时间
s 拟休眠的时间,单位是秒,可以是浮点数
import time
def wait():
time.sleep(3.3)
wait()
等3.3秒后退出程序

perf_counter()测量时间
返回一个cpu级别的精确时间计数值,单位为秒
由于这个计数值起点不确定,连续调用插值才有意义
import time
start = time.perf_counter()
end = time.perf_counter()
a = eval(’{:.5f}’.format(end-start))
print(a)

实例:文本进度条

import time
scale = 10 #赋值scale 10 为文本大概的宽度
print(’------执行开始------’)
for i in range(scale+1): #赋值i从0-10
a = ‘*’ * i #输出0-10个星号
b = ‘.’ * (scale-i) #输出10-0个点号
c = (i/scale)*100 #输出0-100的字符
print(’{:^.0f}%[{}->{}]’.format(c,a,b))
#在第一个槽中输出居中,精确到小数点后第0位的c
#第二个槽中输出星号a,第二个槽中输出。b
time.sleep(0.1)
print(’------执行结束------’)

接下来学习单行动态刷新
关键是\r ,回车
与end=‘’
import time
for i in range(101):
print(’\r{:3}%’.format(i),end=’?’)
#\r 表示输出后回到当前字符串开头
#end=’‘表示当次输出停留在当前字符串。可在’'内填充任意字符
time.sleep(0.01)

完整版

import time
scale = 20
print(‘执行开始’.center(scale,’-’))
#输出根据20长度居中,以-号为填充的执行开始字符串
start = time.perf_counter() #测量开始时间
for i in range(scale+1): #赋值i 进0-20的循环
a = ‘’ * i #a,进0-20的
b = ‘.’ *(scale-i) #b,进20-0的。号
c = (i/scale)100 #0-20/20100的值
dur = time.perf_counter() - start #测量结束时间-开始时间的循环
print(’\r{:^3.0f}%[{}->{}]{:.2f}s’.format(c,a,b,dur),end=’?’)
#分别在槽中加入回车到最前的居中3个长度0位小数的c,
#a,b,以及,取2位小数的测量结束时间的值,并不换行。
time.sleep(0.1)
print(’\n’+‘执行结束’.center(scale,’-’))
#换到下一行执行结束命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值