为了账号安全,请及时绑定邮箱和手机立即绑定

python入门:字符串

标签:
Python

所有标准序列操作(索引、切片、乘法、成员检查、长度、最小值、最大值)都适用于字符串,但是字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">a = 'http://www.python.org'<br>a[-3:]='com'<br>Traceback (most recent call last):<br>  File "<pyshell#6>", line 1in <module><br>    a[-3:]='com'<br>TypeError: 'str' object does not support item assignment<br></span>

python提供了多种字符串设置方法,以前,主要的解决方法是使用字符串格式设置运算符-百分号。这个运算符的行为类似C语言中的景点函数printf:在%左边制定一个字符串,并在右边指定要设置其格式的值。指定要设置其格式的值,可使用单个值,可使用元组或字典。

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">format='http:// %s.%s.org'<br>values= ('www','python')<br>format % values<br>'http:// www.python.org'<br></span>

上述%s称为转换说明符,指出了要将值插入的地方,s意味着将值视为字符串进行格式设置。如果指定的不是字符串,将使用str将其转换为字符串,其他说明符将导致其他转换形式。

常用的另一种方式

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">"{},{},and {}".format("first","second","third")<br>'first,second,and third'<br> "{1},{0},{3},{2}".format("first","second","third","four")<br>'second,first,four,third'<br> "{0},{1},{2},{3}".format("first","second","third","four")<br>'first,second,third,four'<br></span>
1<span style="font-family: 微软雅黑, 'Microsoft YaHei';"># 调用math中的pi模块<br>from math import pi<br>"{name} is approximately {value:.3f}.".format(value=pi,name="π")                            <br>'π is approximately 3.142.'<br></span>

这里value:.3f制定了格式说明符,意味着使用3位小数的浮点数格式。

如果变量与替换字段同名,可使用

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">from math import e<br> f"Euler's constant is roughly {e}."                          <br>"Euler's constant is roughly 2.718281828459045."<br>同比:<br>"Euler's constant is roughly {e}.".format(e=e)<br>"Euler's constant is roughly 2.718281828459045."<br></span>

设置字符串格式

组成部分:字段名、转换标志、格式说明符。

字段名:索引或标识符,指出要设置那个值的格式并使用结果来替换该字段。除指定值外,还可指定值的特定部分,如元素。

转化标志:跟在叹号后面的单个字符,当前支持字符包括r(repr)、s(str)、a(ascii)。如果制定了转换标志,将不适用对象本身的格式设置机制,而是使用指定的函数将对象转换为字符串,在做进一步的格式设置。

格式说明符:跟在冒号后面的表达式,格式说明符让我们能够详细地制定最终的格式,包括格式类型(如字符串,浮点数或十六进制)。

替换字段名

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">"{} {} {} {}".format(1,2,3,4)                            <br>'1 2 3 4'<br>#通过索引来指定那个字段中对应的未命名参数。<br>"{0} {3} {1} {2}".format(1,2,3,4)                          <br>'1 4 2 3'<br></span>

基本转换

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">print("{pi!s} {pi!r} {pi!a}".format(pi="π"))  <br>π 'π' '\u03c0'<br></span>

分别使用str、repr、ascii进行转换

还可以指定转换值的类型

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';""The number is {}".format(42)    <br>'The number is 42'<br>"The number is {:f}".format(42)   <br>'The number is 42.000000'<br></span>

或二进制格式

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">"The number is {:b}".format(42)    <br>'The number is 101010'<br></span>

字符串格式设置类型说明符

整型:

  •  b 二进制

  • c 字符型,把数字转成表示unicode的字符

  • d 十进制

  • o 八进制

  • x 十六进制,显示小写字母

  • X 十六进制,显示大写字母

  • n 与d行为相同,使用本地的数字表示方式

  • ''(空,没有空格) 与d相同

浮点数

  • e 科学计数法表示,小写e

  • E 科学计数法表示,大写E

  • f 显示为定点数,默认小数点后六位

  • F 同f

  • g 自动选择是否用科学记数法表示

  • G 同g

  • n 同g,使用本地表示方式

  • % 使用百分比表示

  • ''(空) 同g


宽度、精度、和千位符

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';""{number:10}".format(number=3)      <br>'         3'<br>"{name:10}".format(name="andy")      <br>'andy <br> "Pi day is {pi:10.3f}".format(pi=pi)      <br>'Pi day is      3.142'     '<br># 或千位符<br>"This is {:,}".format(10**10)   <br>'This is 10,000,000,000'<br></span>

符号、对齐及填充

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';"'{:010.2f}'.format(pi)  <br>'0000003.14'<br>print('{0:<10.2f}\n{0:>10.2f}\n{0:^10.2f}'.format(pi))      <br>3.14      <br>      3.14<br>   3.14<br># 可以制定字符作为填充字符 <br>"{:$^15}".format(" hello ")<br>'$$$$ hello $$$$'<br><br>print('{0:10.2f}\n{1:10.2f}'.format(pi,-pi))<br>      3.14<br>     -3.14<br>   <br>print('{0:10.2f}\n{1:=10.2f}'.format(pi,-pi))<br>      3.14<br>-     3.14<br><br>print('{0:-.2f}\n{1:-.2f}'.format(pi,-pi))<br>3.14<br>-3.14<br><br>print('{0:+.2f}\n{1:+.2f}'.format(pi,-pi))<br>+3.14<br>-3.14<br><br>print('{0:+10.2f}\n{1:+10.2f}'.format(pi,-pi))<br>     +3.14<br>     -3.14<br>     <br>print('{0: .2f}\n{1: .2f}'.format(pi,-pi))<br> 3.14<br>-3.14<br><br>"{:b}".format(42)<br>'101010'<br>"{:#b}".format(42)<br>'0b101010'<br>"{:#g}".format(42)<br>'42.0000'<br></span>

字符串常用方法

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">center通过在两边添加填充字符(默认为空格)让字符串居中<br>"Hi,How old are you".center(30)<br>'      Hi,How old are you      '<br>"Hi,How old are you".center(30,"*")<br>'******Hi,How old are you******'<br><br>find在字符串中查找子串,如果找到,就返回子串的第一个字符的索引,否则返回-1。<br>"Hi,How old are you".find("old")<br>7<br>tmp = "hello,welcome to you"<br>tmp.find('hi')<br>-1<br>还可以指定搜索的起点与终点<br>tmp.find("hi",0,10)<br>-1<br><br>join用于合并字符串<br>s = ['1','2','3','4']<br>s1="+"<br>s1.join(s)<br>'1+2+3+4'<br>dir = '','usr','bin','env'<br>'/'.join(dir)<br>'/usr/bin/env'<br>print('C:' + '\\'.join(dir))<br>C:\usr\bin\env<br><br>lower转换小写<br>'HELLOWORLD'.lower()<br>'helloworld'<br></span>

replace替换将指定字符串替换成另一个字符串,并返回替换后结果。

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">str ="This is a test"<br>str.replace("is","was")<br>'Thwas was a test'<br></span>

split拆分字符串为序列

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';"> num = '1+2+3+4'<br>num.split("+")<br>['1', '2', '3', '4']<br>'/usr/bin/env'.split('/')<br>['', 'usr', 'bin', 'env']<br></span>

strip删除行首与行尾的空白行,并返回删除后的结果

1<span style="font-family: 微软雅黑, 'Microsoft YaHei';">'   hello world   '.strip()<br>'hello world'</span>

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消