Python学习笔记七-字符串函数与格式化

前言

上一篇文章我们讲了字符串的基本概念和基本的操作,这一篇文章讲下这个常用的字符串函数格式化输出,这两点都挺重要的,在处理字符串上用的也挺多的

一.字符串函数

我把函数分为三类,第一类是转换为字符串类型返回单个字符,第二类返回对应的进制数,第三类返回字符串长度单字符对应的编码

下面我用表格分别表示出来

1.第一类

函数功能
str(<参数>)返回任意数据类型的字符串形式
chr(<参数>)返回Unicode编码对应的字符

2.第二类

函数功能
hex(<整数类型>)返回整数对应的十六进制形式的字符串
oct(<整数类型>)返回整数对应的八进制形式的字符串

3.第三类

函数功能
len(<字符串类型>)返回字符串的长度(字符串有多少个字符,也能组合数据类型的长度)
ord(<字符类型>)返回单个字符对应的Unicode编码(以十进制形式)

我们可以看到这些字符串函数都有一个函数的基本特点,都会有函数返回值,这是因为我们给的参数经过函数内部处理完成后返回的一个结果

1.第一类
str()作用是把任意数据类型转换为字符串形式,可以理解为在开头和结尾两端加上引号

print(str(123))
print(str(3.14))
print(str(2.2+8.1j))
print(str((1,'s',3,4)))
print(str(['q',2,'e'] ))

输出本来是没有单引号框起来,但是为了区分这是字符串

'123'
'3.14'
'(2.2+8.1j)'
'(1,'s',3,4)'
'['q',2,'e']'

chr()返回Unicode编码对应的单字符,Unicode编码中已经包含了其他常用的编码类型,如:ASCII

print(chr(36))
print(chr(10004))
print(chr(9801))

输出

$
✔
♉

2.第二类
hex()和oct()分别返回整数类型对应的十六进制和八进制

print(hex(64))
print(oct(100))

输出

0x40
0o144

3.第三类
len()和ord()分别返回字符串的长度和单个字符对应的Unicode编码(以十进制形式)

print(len("abcd efgh"))
print(ord('♉'))

输出

9
9801

二.操作函数

之前讲到的所涉及到的只是单纯的函数,而这里要讲的是面向对象中的方法实现的,功能更加的多,更加的强大

这里也是按照顺序列出常用的方法

4.第四类

函数功能
str.lower()返回全部字符小写的字符串
str.upper()返回全部字符大写的字符串
str.split(sep=None,maxsplit=-1)返回一个列表,由字符串str根据sep参数分隔,默认以空格分隔
str.count(sub[,start[,end]])返回str[start:end]中子字符串sub出现的次数

5.第五类

函数功能
str.replace(old,new[,count])返回新字符串,把所有old子字符串被替换成new子串,如果给出count,则是前count次数old子串被替换
str.center(width,[fillchar])字符串居中函数,返回长度为width的字符串,空白位置用fillchar字符填充,默认空格填充

6.第六类

函数功能
str.strip([chars])返回新字符串,移除字符串头尾指定的字符(默认为空格)或字符序列
str.join(iterable)返回新字符串,将序列iterable中的元素以指定的字符连接生成一个新的字符串(序列类型后面再讲到)

下面给出简单的实例:

4.第四类
str.lower()、str.upper():分别使得每个字符变为小写、大写
str.split(sep=None,maxsplit=-1):通过sep字符分隔开str形成列表类型,此时列表内每个元素都是字符
str.count(sub[,start[,end]]):计子串sub出现的次数,str[start:end]区间内

str1="ABcd"
print(str1.lower())
print(str1.upper())

str2="a-b-1-2"
print(str2.split('-'))

str3="12a12d12"
print(str3.count("12"))
print(str3.count("12",0,5))

输出

abcd
ABCD
['a', 'b', '1', '2']
3
2

5.第五类
str.replace(old,new[,count]):old子串被new子串替换,前面出现count次的都被替换
str.center(width,[fillchar]):以宽度width居中,用fillchar字符填充

str1="python is good "
print(str1.replace(' ','-'))
print(str1.replace(' ','-',2))

str2 = "python"
print(str2.center(10))
print(str2.center(10,'-'))

输出

python-is-good-
python-is-good
  python  
--python--

6.第六类
str.strip([chars]):移除首尾出现的字符或字符串chars,将不在按照字符的序号
str.join(iterable):将字符串或字符str加入到序列类型的每个元素的后面,生成新的字符串

str1="-*py*-"
print(str1.strip('-*'))

str2='-'
tup=('1','2','3','4')
li=['a','b','c','4']
print(str2.join(tup))
print(str2.join(li))

输出

py
1-2-3-4
a-b-c-4

三.格式化函数

1.基本的使用

前面讲到的仅仅只是函数与方法,这些都是在处理字符串过程中会运用到的,格式化函数format()一般用在print()函数里面,这是针对字符串对象使用的方法,使得字符串输出的格式不一样的。

基本的格式为:<字符串模板>.format(<逗号分隔的参数>),参数可以是各种数据类型,包括整形、浮点型、复数、字符串、列表和元组

这里是以字符串为对象,但是以format()里面的参数对应的是字符串里的槽,用大括号{}来表示槽,参数按照序号关系替换到槽中

print("Python{}是{}语言和{}编程方式".format("语言","解释型","面向对象"))

输出

'Python语言是解释型语言和面向对象编程方式'

如果大括号里指明了参数的序号,则按照序号对应参数替换

print("Python{1}是{2}语言和{0}编程方式".format("面向对象","语言","解释型"))

输出

'Python语言是解释型语言和面向对象编程方式'

当要打印大括号时,需要连续输入两次{{,}}这样才不会报错

s="}}ab{}{{"
print(s.format("1"))

输出

'}ab1{'

2.带有参数的格式化

format()方法中的<字符串模板>的槽除了包括参数序号,也能加入一些参数达到更多的格式输出,每个参数在引号(:)后面用逗号进行分隔并且按照表格里的顺序,参数的序号在引号:前面

槽的基本格式为:{<参数序号>:<格式控制标记符>}

列出基本的格式控制标记符

:<填充字符><对齐方式><宽度设置><,>逗号<.精度><数据类型>
引导符号用于填充的单个字符左对齐< 居中对齐^ 右对齐>设置字符串的输出宽度数字的千位分隔符适用于整数和浮点数浮点数的小数点后的位数,字符串的最大输出长度转换输出的数据类型,包括XXX进制,浮点数的几种格式

认真的思考就能发现<填充字符>、<对齐方式>、<宽度设置>和英文输入法<,>、<.精度>、<数据类型>可以分成两类来说明,第一类是改变字符输出的格式,第二类是改变数据的输出格式

(1).第一类
<填充字符>指在设置了字符串的输出宽度后剩余的空白位置用什么字符填充,默认是空格填充
<对齐方式>左对齐<右对齐>居中对齐^
<宽度设置>参数填入槽后输出字符串的长度,宽度设置的位数小于实际参数位数,则不改变宽度并且输出原来的参数

s="Python"
#<宽度设置>为10,默认<左对齐>
print("{0:10}".format(s))
#<右对齐>
print("{0:>10}".format(s))
#<居中>并且使用*<填充>
print("{0:*^10}".format(s))

输出

Python    
    Python
**Python**

(2).第二类
<,>逗号用来显示数字类型的千位分隔符(,)

#<,>逗号,数字千位分隔符
print("{:,}".format(12345678))
print("{:,}".format(12345.67))

输出

12,345,678
12,345.67

<.精度>这里点(.)和精度是两个都要设置,例如:.2、.4等等,不能直接是点.
<数据类型>用于改变输出整数浮点数类型的格式

整数输出格式
b:输出二进制方式
c:输出对应的Unicode字符
d:输出十进制方式
o:输出八进制方式
x:输出小写十六进制方式
X: 输出大写十六进制方式

print("{0:c},{0:d},{0:o},{0:x},{0:X}".format(125))

输出

'}',125,175,7d,7D

浮点数输出格式
e:输出对应小写e的指数形式
E:输出对应大写E的指数形式
f:输出标准浮点形式
%:输出百分形式

print("{0:e},{0:E},{0:f},{0:%}".format(3.14))
print("{0:.2e},{0:.2E},{0:.2f},{0:.2%}".format(3.14))

输出

3.140000e+00,3.140000E+00,3.140000,314.000000%
3.14e+00,3.14E+00,3.14,314.00%
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值