python字符串的表示_Python字符串详解

一、字符串详解

1、字符串特点

字符串创建后不可修改;

若要拼接或修改创建好的字符串都会造成重新生成字符串;

只能进行加减运算

字符串用单引号或双引号引起来,例如:"this is a String"  'this is a String'

2、字符串常用功能

需求描述

右列代码的解释

实现代码举例

判断和转换字符串大小写

包含常见字符;

v = "heLlO" x= v.lower() print(x)

包含常见字符;

v = "heLlO" x= v.islower() print(x)

包含常见字符;

v = "heLlO" x= v.upper() print(x)

包含常见字符;

v = "heLlO" x= v.isupper() print(x)

查找字符串子序列的索引位置

从开始往后找,找到第一个就获取其位置,并终止查找;

v = "012312" x = v.find('12') print(x)

从指定位置找,此功能的前边位置为开区间>=,后边位置为闭区间<;

v = "012312" y = v.find('12',4,6) print(y)

字符串拼接

a = "你好你好" a = " ".join(a) print(a)

去除左右空格字符和不可见字符

备注:若括号内写字符,则移除指定字符,从最多开始匹配;

a = " hello " b = a.strip() print(b)

去除左空格字符和不可见字符

备注:若括号内写字符,则移除指定字符,从最多开始匹配;

a = " hello " b = a.lstrip() print(b)

去除右空格字符和不可见字符

备注:若括号内写字符,则移除指定字符,从最多开始匹配;

a = " hello " b = a.rstrip() print(b)

分隔信息,指定分隔段数,从左到右

备注:指定分隔符不显示

a = "abcdffodooodxxx" b = a.split("d") print(b)

分隔信息,指定分隔段数,从右到左

备注:指定分隔符不显示

a = "abcdffodooodxxx" b = a.rsplit("d") print(b)

字符串的替换

代码中的2指只替换前两个匹配字符,如果 不指第三个参数则全替换。

a = "hallohallohallo" b = a.replace("a","e",2)

获取字符串中的某一个字符

a = "hello" b = a[3] print(b)

0>=范围<3 -1代表最后一位 -2代表倒数第二位;

a = "hello" b = a[0:3] print(b)

Python3中获取的是字符的个数

Python2.7中获取的是字符的字节数

Python3中获取的是字符的个数

Python2.7中获取的是字符的字节数

a = "hello" b = len(a) print(b)

检查以什么开头

v = "heLlO" y = v.startswith('h') print(y)

检查以什么结尾

v = "heLlO" y = v.endswith('O') print(y)

一个个输出字符串的方法

a为变量名

test = "降龙十八掌"

for a in test:

print(a)

创建一个范围的数字

0>=范围<100 5为设置的步长(默认步长则是连续的),

范围如果从100到0,则步长需要时负数,比如是-1。

注意:Python2.7中一次性创建范围内所有数字;而Python3则做了优化,

只能通过for循环每次创建一个数字;

如果要再Python2中也一个个创建,则需要使用xrange;

a = range(0,100,5)

for iterm in a:

print(iterm)

3、字符串不常用功能

需求描述

右列代码的解释

实现代码举例

首字母大写

v = "hello" x = v.capitalize() print(x)

字母大写变小写

包含常见和不常见字符;

v = "heLlO" x = v.casefold() print(x)

设置宽度并将内容居中

20代表内容所占宽度,*位置只能用一个字符,不能是数字,但是可有可无;

v = "Hello" x = v.center(20,"*") print(v)

计算字符或子序列出现多少次

L位置要统计的字符或者子序列, 5,6代表要统计的始末位置;

v = "heLlO" x = v.count("L",5,6) print(x)

查找子序列的位置

index与find不同的是:find没找到显示-1,index查找不到会报错;

v = "01632" x = v.index('9') print(x)

用户数据套用模板格式进行输出

test = "i am {name}",age(a) i = test.format(name="tom",a=19) print(i)

test = "i am {0}",age(1) i = test.format("tom",19) print(i)

test = "i am {name}",age(a) i = test.format_map({"name":"tom","a":19}) print(i)

判断字符串中是否只是包含的字母和数字

test = "123abc" v = test.isalnum() print(v)

判断字符串中是否只是包含字母

test = "123abc" v = test.isalpha() print(v)

调整列宽为指定长度,常用语做表格

\t 制表符 \n 换行符

test = "123\tabc\tcdd\t\n123\tabc\tcdd\t" v = test.expandtabs(20) print(v)

判定输入的是否是数字

不支持识别特殊格式的数字

a = "123" x = a.isdecimal() print(x)

判定输入的是否是数字

支持识别特殊格式的数字

a = "123" x = a.isdigit() print(x)

判定输入的是否是数字

支持识别特殊格式的数字和中文数字

a = "123" x = a.isnumeric() print(x)

判断输出的内容是否有不可显示的字符

a = "123/t" x= a.printable() print(x)

判断是否全部都是空格

a = " " x= a.isspace() print(x)

判断是否是标题

a = "Hello Word" x= a.istitle() print(x)

将非标题变成标题

a = "Hello word" x= a.title() print(x)

指定占用宽度并将内容居中

20为宽度,"*"为填充字符

a = "hello" b = a.center(20,"*") print(b)

指定占用宽度并将内容居左

20为宽度,"*"为填充字符

a = "hello" b = a.ljust(20,"*") print(b)

指定占用宽度并将内容居右

20为宽度,"*"为填充字符

a = "hello" b = a.rjust(20,"*") print(b)

规避敏感信息

v1 = "不良言论" v2 = "****" v3 = str.maketrans(v1,v2)

a = "某人发表的不良言论" b = a.translate(v3) print(b)

分隔信息,只能分隔三段; 从左到右

备注:指定分隔符显示

a = "abcdffodooodxxx" b = a.partition("d") print(b)

分隔信息,只能分隔三段; 从右到左

备注:指定分隔符显示

a = "abcdffodooodxxx" b = a.rpartition("d") print(b)

只能根据换行符分隔

参数解释:True显示/n,flase不显示换行符

a = "abcdf/nodoo/nodxxx" b = a.rsplitlines(True) print(b)

大小写转换

a = "hello" b = a.swapcase() print(b)

二、字符串拼接

1、百分号字符串拼接

1)举例:%s 可以接收任何值,%d只可以接收数字

aaa = 'i am %s my hobby is %s' % ('xxx','yyy')

aaa = 'i am %s my hobby is %s' % ('xxx',1)

aaa = 'i am %s my hobby is %s' % ('xxx',[1,2])

name = 'xxx'

age = 33

aaa = 'i am %s my hobby is %d' % (name,age)

说明:%.3s中的.3的意思是 接收的数据长度为3位,不常用,知道即可;

2)举例:%f用来拼接浮点数

tpl = "percent %.2f" % 99.976236666666        #%.2f中的.2代表四舍五入保留小数点后两位长度的小数

tpl = 'percent %.2f %%' % 99.9762366666666      #%% 代表打印%符号

tpl = "i am %(name)s age %(age)d" % {"name": "aaa", "age": 18}    #使用字典传值

msg='i am %(name)+60s my hobby is alex' %{'name':'lhf'}

msg='i am \033[43;1m%(name)+60s\033[0m my hobby is alex' %{'name':'lhf'}    #拼接内容增加颜色

print('root','x','0','0',sep=':')        #用指定符号来为字符串分隔

3)%拼接理论知识

%[(name)][flags][width].[precision]typecode

(name) 可选,用于选择指定的key

flags 可选,可供选择的值有:

+ 右对齐;正数前加正好,负数前加负号;

- 左对齐;正数前无符号,负数前加负号;

空格 右对齐;正数前加空格,负数前加负号;

0 右对齐;正数前无符号,负数前加负号;用0填充空白处

width 可选,占有宽度

.precision 可选,小数点后保留的位数

typecode 必选

s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置

r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置

c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置

o,将整数转换成 八 进制表示,并将其格式化到指定位置

x,将整数转换成十六进制表示,并将其格式化到指定位置

d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置

e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e)

E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E)

f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位)

F,同上

g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;)

G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;)

%,当字符串中存在格式化标志时,需要用 %%表示一个百分号

注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式

2、format字符串拼

1)format拼接常用功能举例

aabbc = "i am {}, age {}, {}".format("six", 18, 'tom')

aabbc = "i am {}, age {}, {}".format(*["six", 18, 'tom'])

aabbc = "i am {0}, age {1}, really {0}".format("six", 18)

aabbc = "i am {0}, age {1}, really {0}".format(*["six", 18])

aabbc = "i am {name}, age {age}, really {name}".format(name="six", age=18)

aabbc = "i am {name}, age {age}, really {name}".format(**{"name": "six", "age": 18})

aabbc = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33])

aabbc = "i am {:s}, age {:d}, money {:f}".format("six", 18, 88888.1)

aabbc = "i am {:s}, age {:d}".format(*["six", 18])

aabbc = "i am {name:s}, age {age:d}".format(name="six", age=18)

aabbc = "i am {name:s}, age {age:d}".format(**{"name": "six", "age": 18})

aabbc = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2)

aabbc = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15)

aabbc = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)

说明:#b代表二进制,o代表8进制,d代表证书,x代表十六进制小写,X代表十六进制大写,%代表转换为百分

2)format理论知识

[[fill]align][sign][#][0][width][,][.precision][type]

fill 【可选】空白处填充的字符

align 【可选】对齐方式(需配合width使用)

<,内容左对齐

>,内容右对齐(默认)

=,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字

^,内容居中

sign 【可选】有无符号数字

+,正号加正,负号加负;

-,正号不变,负号加负;

空格 ,正号空格,负号加负;

# 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示

, 【可选】为数字添加分隔符,如:1,000,000

width 【可选】格式化位所占宽度

.precision 【可选】小数位保留精度

type 【可选】格式化类型

传入” 字符串类型 “的参数

s,格式化字符串类型数据

空白,未指定类型,则默认是None,同s

传入“ 整数类型 ”的参数

b,将10进制整数自动转换成2进制表示然后格式化

c,将10进制整数自动转换为其对应的unicode字符

d,十进制整数

o,将10进制整数自动转换成8进制表示然后格式化;

x,将10进制整数自动转换成16进制表示然后格式化(小写x)

X,将10进制整数自动转换成16进制表示然后格式化(大写X)

传入“ 浮点型或小数类型 ”的参数

e, 转换为科学计数法(小写e)表示,然后格式化;

E, 转换为科学计数法(大写E)表示,然后格式化;

f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化;

F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化;

g, 自动在e和f中切换

G, 自动在E和F中切换

%,显示百分比(默认显示小数点后6位)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值