python 字符串

2018-08-05  本文已影响0人  __construct

字符串操作

+ 字符串连接操作

str1 = 'aaaaaa'
str2 = 'bbbbbbbb'
print(str1+str2)
# aaaaaabbbbbbbb

* 字符串复制操作

str = '☆'
print(str * 10)
# ☆☆☆☆☆☆☆☆☆☆

[] 字符串索引

通过索引访问指定位置的字符,索引从头(0)开始,尾(-1)开始

str = 'Hello World !'
print(str[0])
# H

[开始索引: 结束索引: 间隔符] 字符串切片操作

str = 'Hello World !'
print(str[0:5])
# Hello

r 元字符串,字符串中的转移字符不会转移,当作普通字符

str = '\nHel\rlo Wo\trld !'
print(str)
str = r'\nHel\rlo Wo\trld !'
print(str)
# lo Wo rld !
# \nHel\rlo Wo\trld !

字符串函数

capitalize 字符串首字母大写

str = 'hello world!'
print( str.capitalize() )
# Hello world!

title 每个单词首字母大写

str = 'hello world!'
print( str.title() )
# Hello World!

upper 每个字母变大写

str = 'hello world!'
print( str.upper() )
# HELLO WORLD!

lower 每个字母变小写

str = 'HELLO WORLD!'
print( str.lower() )
# hello world!

swapcase 大小写互换

str = 'HELLO world!'
print( str.swapcase() )
# hello WORLD!

len() 计算字符串的长度

str = 'hello world!'
print( len(str) )
# 12

count 计算某个字符串出现的次数

字符串.count(查找字符串, [,开始索引, 结束索引])

str = 'hello world!'
print( str.count('l') )
# 3

find 计算某个字符串第一次出现的位置

字符串.find(查找字符串, [,开始索引, 结束索引])
找不到, 返回-1

str = 'hello world!'
print( str.find('l') )
# 2

index 计算某个字符串第一次出现的位置

字符串.index(查找字符串, [,开始索引, 结束索引])
找不到, 抛出异常错误

str = 'hello world!'
print( str.find('l') )
# 2

startswith 检测是否以某字符串开头

url = "http://www.baidu.com/s?ie=utf-8"
print( url.startswith('http') )
# True

print( url.startswith('https') )
# False

endswith 检测是否以某字符串结尾

isupper & islower 检测字符串(英文字母)是否都是大写 | 小写字母

print('HELLO WORLD'.isupper())
# True

print('hello world'.isupper())
# True

isalnum 检测字符串是否由数字,字母和文字等组成

print( '1234567890abcd你好'.isalnum() )
# True

isalpha 检测字符串是否由字母和文字等组成

print( 'abcd你好'.isalnum() )
# True

isspace 检测字符串是否由空白字符组成

print( ' \t\n'.isspace() )
# True

istitle 检测字符串是否符合title()的结果

print( 'Hello World'.istitle() )
# True

isdigit 检测字符串是否由纯数字组成(十进制)
isnumeric 检测字符串是否是数值字符串,效果和isdigit 一致
isdecimal

print( '1234567890'.isdigit() )
# True

print( '1234567890'.istitle() )
# True

print( '1234567890'.isdecimal() )
# True

split 切割字符串
splitlines 以回车换行为切割符切割

str = 'a = 2'
print( str.split('=') )
# ['a ', ' 2']

join 使用指定字符串,将列表数据拼接

list1 = ['a', 'b', 'c']
print( '*'.join(list1) )
# a*b*c

zfill 在原有字符串长度不足指定长度时,用0填充,原字符串内容靠右
center 居中
ljust 左对齐
rjust 右对齐

print( 'abcd'.zfill(8) )
# 0000abcd

print( 'abcd'.center(8, '0') )
# 00abcd00

print( 'abcd'.ljust(8, '0') )
# abcd0000

print( 'abcd'.rjust(8, '0') )
# 0000abcd

strip 去掉指定字符串
lstrip
rstrip

str = '*****abcd*****'
print( str.strip("*") )
# abcd

print( str.lstrip("*") )
# abcd*****

print( str.rstrip("*") )
# *****abcd

字符串替换
maketrans() 建立映射表,一一对应
translate() 替换操作

str = 'a的1是a1,a的2是a2,a的3是a3,a的4是a4'
table = ''.maketrans('a', 'b')
print(table)
# {97: 98}
res = str.translate(table)
print(res)
# b的1是b1,b的2是b2,b的3是b3,b的4是b4

format 格式化字符串

str = '小米的年龄是{},身高是{},体重是{}'
res = str.format('21', '188cm', '60kg')
print(res)
# 小米的年龄是21,身高是188cm,体重是60kg
str = '小米的年龄是{age},身高是{height},体重是{wight}'
res = str.format(age = '21', wight = '66kg', height = '188cm')
print(res)
# 小米的年龄是21,身高是188cm,体重是66kg
str = '小米的年龄是{0[0]},身高是{0[1]},体重是{0[2]}'
res = str.format([21, '168cm', '60kg'])
print(res)
# 小米的年龄是21,身高是168cm,体重是60kg

str = '小米的年龄是{0[age]},身高是{0[weight]},体重是{0[height]}'
res = str.format({'age':21, 'weight':'168cm', 'height':'60kg'})
{ : 特殊字符 > 10 }  # 居右
{ : 特殊字符 < 10 } # 居左
{ : 特殊字符 ^ 10 } # 居中
str = 'Π = {:.4f}'
res = str.format(3.1415926)
print(res)
# Π = 3.1416
{:b} # 二进制
{:o} # 八进制
{:d} # 十进制
{:f} # 十六进制
{:,}

字符串模块

import string

ascii_letters 获取所有ascii码中字母字符的字符串(包含大小写)
ascii_lowercase 小写字母...
ascii_uppercase 大写字母...

A~Z : 65~90
a~z : 97~122
0~9 : 48~57

print(string.ascii_letters)
# abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
ord('A') # 65
chr(65) # A
print(string.ascii_lowercase)
# abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase)
# ABCDEFGHIJKLMNOPQRSTUVWXYZ

digits 十进制所有数字字符
hexdigits 十六进制所有数字字符
octdigits八进制所有数字字符

print(string.digits)
# 0123456789

print(string.hexdigits)
# 0123456789abcdefABCDEF

print(string.octdigits)
# 01234567

printable 获取所有可打印的字符
punctuation 获取所有的标点符号
whitespace 获取所有空白字符

print(string.printable)
# 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTU...
print(string.punctuation)
# !"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~
print(string.whitespace )
# \t\n\r\x0b\x0c

上一篇下一篇

猜你喜欢

热点阅读