创建字符串:

可以用单引号,也可以用双引号创建字符串

var1=‘hello,world’
var2="hello,world"

字符串的操作:

 

1.乘法运算:

print('hello world'*2) #输出结果为hello worldhello world

 

2.判断字符串中是否存在给定字符

print('an' in 'animal')    #输出‘True’
print('s' in 'animal')    #输出‘False’

列表,元组的操作都是这样

 

3.[ ],[ : ]通过索引获取字符串中的字符

a='animal'
print(a[2:])    #输出‘imal’

和列表的切片操作相同

 

4.字符串的拼接

(1)用‘+’

 a='123'  
 b='abc'
  c=a+b
 print(c)    #输出123abc

 

(2)用join()方法 

a='abc'
b='123'
c=''.join([a,b])
print(c)    #输出abc123
a='abc'
b='123'
c='xyz'
d='--'.join([a,b,c])
print(d)    #输出abc--123--xyz

用引号之间的字符串将断裂的字符串拼接  

 

5.字符串的其他方法

st='hello kitty'
print(st.count('l'))#输出‘2’,统计给定字符串的数量
print(st.capitalize())#输出‘Hello kitty’,整个字符串的首字母大写
print(st.center(20,'-'))#输出'-----hello kitty-----',居中字符串
print(st.endswith('ty'))#输出True,判断是否以给定字符串结尾
print(st.startswith('he'))#输出True,判断是否以给定字符串开头

st1='he\tllo world'
print(st1.expandtabs(tabsize=10))#输出'he          llo world'

print(st.find('s'))#查找到第一个指定字符串,并将索引值返回,若没找到,则返回-1
  #可以指定查找的起始值和结束值,默认为0和len(string)
  #如:print(st.find('s',2,10)),表示在索引值为2和10的范围内查找子字符串

st2='you are {adj1} and {adj2}' print(st2.format(adj1='beautiful',adj2='tall'))#格式化输出的另一种方式 print(st2.format_map({'adj1':'beautiful','adj2':'tall'}))#format()方法的字典形式 print(st.index('h'))#输出给定字符串的索引值 print('abc123!'.isalnum())#判断是否是数字或者字母

 

print('123'.isdecimal())
print('123'.isdigit())
print('123'.isnumeric())

 

三个方法的区别:
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字
False: 汉字数字
Error: 无

isdecimal()
True: Unicode数字,,全角数字(双字节)
False: 罗马数字,汉字数字
Error: byte数字(单字节)

isnumeric()
True: Unicode数字,全角数字(双字节),罗马数字,汉字数字
False: 无
Error: byte数字(单字节)
print('abc'.isidentifier())#判断字符串是否是字母开头
print('abc'.islower())#判断是否为全部小写
print('abc'.isupper())#判断是否为全部大写
print(' '.isspace())#判断是否为空格
print('My Name Is Chen'.istitle())#判断是否是每个单词的首字母大写
print('My Name Is Chen'.lower())#将字符串的所有字母小写
print('My Name Is Chen'.upper())#将字符串的所有字母大写
print('My Name Is Chen'.swapcase())#将字符串大写的字母小写,小写的字母大写
print(st.ljust(50,'*'))#输出hello kitty***************************************
print(st.rjust(50,'*'))#输出***************************************hello kitty
print('   my name is  \n'.strip())#删除头尾所有的空格,换行符,也可以指定参数,删除头尾指定的符号,这是就不会删除空格和换行符
  #print('--my name is-- '.strip('-')),输出为'my name is--'
print(' my name is \n'.lstrip())#只删除字符串左边的空格和换行符 print(' my name is \n'.rstrip())#只删除字符串右边的空格和换行符 print('my name is is'.replace('is','are',1))#字符串替换,第三个参数为替换的个数 print('my name is'.rfind('e'))#从右边开始寻找给定字符,并返回索引 print('my name is'.split(' '))#以空格分割字符串,也可以是以其他字符分割字符串 print('my name is'.title())#以所有单词首字母大写的形式输出字符串

常用方法有:

count()

center()

startswith()

find()

format()

lower()

upper()

strip()

replace()

split()

 字符串格式化:
字符串格式化用操作符百分号(%)实现
如:
>>> print('hello,%s'%'world')
hello,world
>>> print('我今年%s岁了'%10)
我今年10岁了

格式化字符串的%s部分称为转换说明符,标记了需要仿制转换值得位置,通用术语为占位符

%s    字符串 (采用str()的显示)


%r    字符串 (采用repr()的显示)


%c    单个字符


%b    二进制整数


%d    十进制整数


%i    十进制整数


%o    八进制整数


%x    十六进制整数


%e    指数 (基底写为e)


%E    指数 (基底写为E)


%f    浮点数


%F    浮点数,与上相同


%g    指数(e)或浮点数 (根据显示长度)


%G    指数(E)或浮点数 (根据显示长度)


指定精度的格式为一个英文格式下的句点加上希望保留的小数位数,如:
print('圆周率为:%.2f'%3.141592)
>>>圆周率为:3.14

如果要输出百分号:(可以用%%表示)
print('营业额同比增长了%.2f%%'%50.33333)
>>>营业额同比增长了50.33%

基本转换说明符的组成部分:

(1)%字符,标记转换说明符开始
(2)转换标志(可选),-表示左对齐;+表示在转换值之前一定要加上正负号;“”(空格)表示正数之前保留空格;0表示转换值位数不够时用0填充
(3)最小字段宽度(可选),转换后的字符串至少应该具有该值指定的宽度,如果时*,宽度就会从值元组中读出
(4)点(.)后跟精度值(可选):如果转换的是实数,精度值表示出现在小数点后的位数;如果转换的是字符串,该数字就表示最大字段宽度;如果是*,精度就会从元组中读出
(5)转换类型:如s,f,d之类

字段宽度和精度:
>>> print('圆周率PI为:%10f'%3.141593)
圆周率PI为:  3.141593
>>> print('保留两位小数,圆周率PI为:%10.2f'%3.141593)
保留两位小数,圆周率PI为:      3.14
>>> print('保留两位小数,圆周率PI为:%.2f'%3.141593)
保留两位小数,圆周率PI为:3.14
>>> print('字符串精度获取:%.5s'%'hello,world')
字符串精度获取:hello

再看以下代码:
>>> print('从元组中获取字符串精度:%*.*s'%(10,5,'hello,world'))
从元组中获取字符串精度:     hello
>>> print('从元组中获取字符串精度:%.*s'%(5,'hello,world'))
从元组中获取字符串精度:hello
从结果看到,可以使用*(星号)作为字段宽度或精度(或两者都用*),数值会从元组中读取

符号,对齐和0填充
先看一个例子:
print('圆周率PI的值为:%010.2f'%3.141593)
>>>圆周率PI的值为:0000003.14
这样的输出结果,我们称之为“标表”,在字段宽度之前可以仿制一个“标表”,可以是零,加号,减号,空格。零表示用0 进行填充
减号(-)表示用来左对齐,如:
从元组中获取字符串精度:hello
>>> print('圆周率PI的值为:%10.2f'%3.141593)
圆周率PI的值为:      3.14
>>> print('圆周率PI的值为:%-10.2f'%3.141593)
圆周率PI的值为:3.14     #此处右边为多出的空格

空格表示在正数前加上空格
>>> print('%d'%10+'\n'+'%d'%-10)
10
-10
>>> print('% d'%10+'\n'+'%d'%-10)
 10
-10
由结果可知,该操作可以对齐正负数

加号(+)表示无论正负数都表示出符号:
>>> print(('宽度前加加号:%+5d'%10)+'\n'+('宽度前加加号:%+5d'%-10))
宽度前加加号:  +10
宽度前加加号:  -10













posted on 2018-02-21 20:45  行走的cd  阅读(239)  评论(0编辑  收藏  举报