1.字符串的基本表示:
Python中的字符串,是指用有序的字符序列。Python中的字符串有两类,四种表示方式:
未操作或者没有赋值给变量的字符串,可以作为当作注释来使用。因此,可以使用’’’或者”””充当多行注释。
因为字符串,是以’、”作为收尾的标识符,所以,如果字符串中,包含’、”,那么要使用交叉包含的方式来表示,如:
“123’123”
‘123”123’
或者,使用转义字符\来表示,在字符串当中,可以使用\”,代表”;使用\’,代表’,除此之外,转义字符,还可以表示一些不能打印的字符,如:
\b,退格
\n,换行
\r,光标移到行首
2.字符串的使用:
字符串,具有索引和切片两种操作,如:
str =“abcdefg”
字符串中对应字符的序号为:0,1,2,...,n,可以使用str[x],来获取序号x位置的字符,视为字符串的索引操作。
索引操作,分为正序和逆序两种,上面的表示为正序,逆序表示为:-n,...,-2,-1。
而且切片操作,指从字符串中,取出n>=1个字符,同样使用,正序或者逆序的序号。表示方法如下:
[start:end:step],代表取出,从start位置开始,到end-1位置的,中间间隔为step的子串。默认情况下,start若省略,则代表从第一个字符开始获取,end若省略,则代表到最后一个字符结束,step若省略,则代表间隔为1。
将整个字符串翻转过来,可以使用[::-1]。
3.字符串操作符:
str1 + str2:代表将str1和str2字符串拼接(如:’abc’+’123’=>‘abc123’);
str * n:复制n次字符串(如:’abc’*2 =>‘abcabc’);
str1 in str2:判断str1是str2的子串,返回True或False(如‘abc’in‘abcd’=> True);
4.字符串操作函数:
len(str):返回字符串长度
Str(x):将x变为字符串,两端加’’,作用与eval()相反
bin(x):将整数x转换为2进制字符串;
hex(x):将整数x转换为16进制字符串;
oct(x):将整数x转换为8进制字符串;
chr(unicode):返回Unicode码对应的字符;
ord(str):返回字符对应的Unicode码;
Unicode是Python中字符的编码方式,初衷是为了解决ASCII码无法表示英文字符之外字符的问题。各国的文字和特殊符号,均在unicode中有唯一对应的数字。Unicode的范围是0x10FFFF,1114111。
5.字符串的方法:
以String.methodName的形式调用,是针对string对象的操作,string为字符串或字符串变量。
String.lower(),将string中的字母全部转化为小写。
String.upper(),将string中的字母全部转化为大写。
String.split([sep=None]),将string中的字符以seq分割(如:’abc’=> [‘a’,’b’,’c’])。
String.count(substr),返回string中的子串substr的个数。
String.replace(old,new),将string中的old字符串,替换为new字符串。
String.center(width[,fillchar]),将string按照宽度width居中表示,空白处填充fillchar。
String.strip(chars),将string中chars字符串删除。
String.join(iterable),将iterable中的字符,以string连接(如’,’.join(‘123’) =>‘1,2,3’;’,’.join([‘1’,’2’,’3’]) =>‘1,2,3’)。
6.字符串的格式化:
String.format(arg1,arg2,arg3)
“Today {} Sunday, December {}, {}”.format(is, 2, 2018)
{}称为槽,在字符串中起占位作用,由format中的参数填充,默认从左到右对应format的第个,第1个,...,第n个参数。
槽{}内,可以指定取format的第几个参数,如,代表取第个参数。
槽{}内,还可以依次指定,填充字符,对齐方式(左),宽度,由:作为引导符。如{:*
槽{}内,还可以指定数字输出格式:
,每三位中间插入一个空格
.len制定数字或者字符串的最大长度,超出部分截断。
b输出2进制
c输出unicode字符
d输出10进制
o输出8进制
x输出16进制
e输出科学计数法
f输出浮点形式
%输出百分比形式
7.例子程序:
#进度条打印
import time
scale = 100
start = time.perf_counter()
print("执行开始".center(scale,'='))
for i in range(scale + 1):
a = '*'* i
b = '.'* (scale - i)
c = (i / scale) * 100
ts = time.perf_counter() - start
print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c, a, b, ts),end='')
time.sleep(0.01)
print("\n"+"执行结束".center(scale,'-'))
效果如下:
8.程序解释:
(1)print函数中的end参数,指明了print不进行换行,默认情况下,该参数为end=’\n’。
(2)print函数中使用+拼接字符串,可以避免,两个字符串参数之间被添加空格,也可以通过参数sep=’’来改变,默认情况下sep=’’。
程序中用到了time模块中的函数:
(3)时间函数
time():
返回浮点类型的秒数,是计算机的时间戳,代表从1970年1月1日时分秒开始经过的秒数。
ctime():
返回日历时间,形式:'Sun Dec 2 23:39:34 2018'
gmtime():
返回程序时间,形式:time.struct_time(tm_year=2018, tm_mon=12, tm_mday=2, tm_hour=15, tm_min=40, tm_sec=2, tm_wday=6, tm_yday=336, tm_isdst=0)
(4)时间间隔函数:
perf_counter(),获取CPU运行的秒数,精确到纳秒,值不为。
可以通过
Start = perf_counter()
处理
End = perf_counter()
End -start的方式,获取处理花费的时间。
(5)格式化函数
strftime(tpl, ts):
转化时间格式的函数。
tpl为时间模板,ts为gmtime()返回的时间格式。
举例:time.strftime(“%Y/%m/%d %H:%M:%S”, time.gmtime())
输出:'2018/12/02 15:47:09'
tpl模板符号定义如下:
strptime(str, tpl):
输入指定tpl格式的str时间值,返回time.struct_time。
领取专属 10元无门槛券
私享最新 技术干货