07-Python-字符串操作

Python中的字符串用单引号 ' 或双引号 " 括起来,并且字符串不能被修改。字符串的常用操作如下

 

1、字符串的截取

语法:变量[头索引:尾索引] (索引值以 0 为开始值,-1 为从末尾的开始位置)
例如:
str1 = Druid
print(str1[0]) #输出D(第一个字符)
print(str1[-1]) #输出d(倒数第一个字符)
print(str1[:1]) #输出D(第一个字符)
print(str1[0:-1])  #输出Drui (第一至倒数第二个字符)
print(str1[1:4])  #输出rui(第二个至第四个字符)
print(str1[1:10])  #输出ruid(长度超过字符串自身长度,显示第二个至最后一个字符)

2、字符串复制连接

“+”表示连接字符串,“*”表示复制字符串
str1 = Druid
print(str1 + "python")  #输出Druidpython
print(str1 * 3)  #输出DruidDruidDruid(复制3次)

3、转义字符

Python 使用反斜杠 “\ ”转义特殊字符,如果不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串。
print("Dr\nuid")  
#输出Dr
        uid
print(r"Dr\nuid")
#输出Dr\nuid                

4、格式化方法

#使用%
'Hello, %s' % 'world'  #'Hello, world'

'Hi, %s, you have $%d.' % ('Michael', 1000000)  #'Hi, Michael, you have $1000000.'

#格式化整数和浮点数还可以指定是否补0和整数与小数的位数:
'%2d-%02d' % (3, 1)  #' 3-01',第一个2的意思为两位,0的意思为用数字0占一位,第二个2的意思为两位
'%.2f' % 3.1415926  #'3.14',取小数点后两位

#有些时候,字符串里面的%是一个普通字符怎么办?这个时候就需要转义,用%%来表示一个%:
'growth rate: %d %%' % 7  #'growth rate: 7 %'

#format方法
msg = "my name is {}, and age is {}"
msg.format("alex",22)  #'my name is alex, and age is 22'

msg = "my name is {1}, and age is {0}"
msg.format("alex",22)  #'my name is 22, and age is alex'

msg = "my name is {name}, and age is {age}"
msg.format(age=22,name="alex")  #'my name is alex, and age is 22'

_username = input("请输入你的用户名:")
_age = input("请输入你的年龄:")
print("你好:{name},你的年龄:{age}".format(name=_username,age=_age))

#format_map
msg = "my name is {name}, and age is {age}"
msg.format_map({'name':'alex','age':22})  #'my name is alex, and age is 22'

#f-string
name = "Druid"
print(f"hello {name}")  #hello Druid

5、其他常用方法

name = 'my NAme Is Druid'

print(name.capitalize())  # 首字母大写,其他均变成小写
print(name.count('d'))
print(name.center(50, '-'))  # 一共打印五十个字符,字符串置中,不够的位用-填充
print(name.ljust(50, '*'))  # 一共打印五十个字符,字符串置左,不够的位用*填充
print(name.rjust(50, '~'))  # 一共打印五十个字符,字符串置右,不够的位用~填充
print(name.endswith('d'))  # 是否以字符串'd'结尾
print(name.expandtabs(tabsize=30))  # tab键为30个空格
print(name.find('d'))  # 返回字符的第一个索引,没有找到返回-1
print(name[name.find('d'):])  # 切片
print('druid'.rfind('d'))  # 返回最后一个字符的索引
print(name.index('d'))  # 返回索引,没有找到则报错
print(name[name.index('d'):])  # 切片

s = 'a123A'
print(s.isalnum())  # 是否是字母数字
print(s.isalpha())  # 是否是纯英文字符
print(s.isdecimal())  # 是否是十进制
print(s.isdigit())  # 是否是整数
print(s.isidentifier())  # 是否是合法的标识符(变量名)
print(s.islower())  # 是否是小写
print(s.isnumeric())  # 是否仅有数字
print(s.istitle())  # 每个单词开头是否为大写
print(s.isupper())  # 是否为大写
print("".join(('druid!')))  # 把可迭代对象用""中的字符串连接起来
print('+'.join(['a', 'b', 'c']))
print('DruiD'.lower())  # 小写
print('druid'.upper())  # 大写

print('\n    druid'.lstrip())  # 去掉左边空格和换行符
print('druid      \n'.rstrip())  # 去掉右边空格和换行符
print('\n  druid   \n'.strip())  # 去掉两边的空格和换行符

p = str.maketrans('abcde', '12345')  # 前面的字符串用后面的字符串替换
print('abcde'.translate(p))  # 如果前面的字符串和p中的字符串有相同的字符,则替换
print('druid abcde'.translate(p))  # 前面的字符串和p中的字符串不相同的字符不替换

print('druid'.replace('d', 'D', 1))  # 将第一个字符替换,如果不加1,则替换所有

print('druid chenc'.split())  # 默认按照空格分隔字符,得到的结果为列表
print('druid chenc'.split('d'))  # 以d为分隔符
print('druid chenc'.split('c'))  # 以c为分隔符
print('1+2+3'.split('+'))  # 以+为分隔符
print('1+2\n+3+4'.splitlines())  # 按换行符分隔

print('druid chen'.zfill(50))  # 左边用零填充

 

posted @ 2017-10-26 10:21  Druid_Py  阅读(375)  评论(0编辑  收藏  举报