(二)Python语法基础之字符串及其格式化方法(%-format、format、f-string)

目录:

一、字符串(string)
(一)字符串格式化常用的几种格式
1.%-formatting
2.format格式化输出语法
3.string.Template
4.f-string
(二)字符串常用方法

Python相关博客推荐

(一)Python语法基础之列表、元组、字典、集合

一、字符串(string)

在Python中,字符串属于不可变序列,使用单引号、双引号、三引号或者三双引号作为界定符来表示字符串(不同界定符之间可以互相嵌套使用)。
字符串支持序列通用方法(双向索引、比较大小、长度计算、元素访问、切片等)和特有的方法(字符串格式化、字符串查找、字符串替换等);字符串为不可变序列不支持原地操作,但可以返回一个操作后的新的字符串作为结果以此实现字符串的“可变”操作。

表一:常见转义字符

转义字符含义
\b退格,把光标移动到前一列的位置
\f换页符
\n换行符
\r回车
\t水平制表符
\v垂直制表符
\一个\
单引号
‘’双引号
\ooo3位八进制数对应的字符
\xhh2位十六进制数对应的字符
\uhhhh4位十六进制数表示的Unicode字符

如:转义字符的效果

>>>print('hello\nworld')  #换行符
hello
world
>>>print('\101')      #三位八进制数对应的字符
A
>>>print('\x41')   #两位十六进制数对应的字符
A

(一)字符串格式化常用的几种格式

1.%-formatting
'% [-] [+] [0] [m ] [.n ] 格式字符 '% x
[-]-------------指定左对齐输出
[+]------------对正数加正号
[0]----------指定空位填0
[m ]----------指定最小宽度
[.n ] --------指定精度
格式字符-------指定类型
x-----------待转换的表达式
格式字符

格式字符说明
%s字符串(采用str()的显示)
%r字符串(采用repr()的显示)
%c单个字符
%b二进制整数
%d十进制整数
%i十进制整数
%o八进制整数
%x十六进制整数
%e指数(基底写为e)
%E指数(基底写为E)
%f、%F浮点数
%g指数(e)或浮点数(根据显示长度)
%G指数(E)或浮点数(根据长度显示)
%%字符%
>>>x=12345
>>>f1="%e"%x
'1.234500e+0.3'
>>>f2="%s"%x             #等价于str()
'12345'
>>>f3="%d,%c"%(65,65)   #使用元组对字符串进行格式化,按位置对应进行
'65,A'

2.format格式化输出语法
语法格式:
<模板字符串>.format(<逗号分隔的参数>)

>>>'my name is{0},{0} is {1} years old.'.format('xk',22)
'my name is xk,xk is 22 years old'.
>>>'{}{}{}'.format('bloger','is','gorgeous!')
'bloger is gorgeous!'

模板字符串除了参数序号还可以包括格式控制信息:
{<参数序号/参数名>:<格式控制信息(格式为:<填充><对齐><宽度><,><.精度><类型>)>}

<填充><对齐 ><宽度><.精度><类别>
用于填充的单个字符<(左对齐),>(右对齐),^(居中对齐)槽的设定输出宽度浮点数小数部分精度或者字符串的最大输出长度整数类型/浮点数类型数字的千分位分隔符,适用于整数和浮点数
实际长度大于设定长度时,以实际长度为准;实际长度小于设定长度时默认以空格字符补充表示在指定宽度内的输出时的对齐方式通过<填充>设定,默认为空格以“.”开头,对于浮点数表示小数部分的精度,对于字符串表示最大输出长度
>>>'{0:*^10}'.format('python') #居中对齐输出10位,以*填充
'**python**'
>>>'{0:1}'.format('python')  #指定长度小于字符串实际长度,以实际长度为准
'python'

数据格式控制:
format数据格式控制

更多格式控制大家自己在码程序时多加尝试练习,毕竟纸上得来终觉浅!

3.string.Template
用string模块里面提供的Template类进行传参,但其语法过于复杂与Python所追求的简便快捷相违背,用之较少。

4.f-string
f-string功能上不逊色与以上几种格式化方法并且更加方便简洁,Python3.6及以上版本推荐使用f-string格式
#语法格式:f’…’/F’…'
(1){ }内表示被替换的字段,{ }内可以填入表达式或者调用函数,编译时会自动执行并返回结果
(2){ }内外用的界定符不允许冲突(大括号内用单引号时一般会与外部的界定符冲突,可灵活使用双引号、三引号切换)
(3){ }外部可以用\进行转义,其内部不允许使用转义字符(事实上大括号内部根本不允许出现’‘字符,如果避免不了时也只能用变量表示’'字符)
(4)要显示大括号时用大括号对大括号进行转义({{ 表示{,}}表示})
(5)f-string多行显示

>>> name = 'xk'
>>> age = 22
>>> f"Hello!" \
... f"I'm {name}." \
... f"I'm {age}."
"Hello!I'm xk.I'm 22."
>>> f"""Hello!
...     I'm {name}.
...     I'm {age}."""
"Hello!\n    I'm xk.\n    I'm 22."

(6)f-string的自定义格式控制
f-string采用{content:format}的形式来实现格式控制,采用默认格式时例如上面一样只需要{content}部分即可,格式部分可省略。

在这里插入图片描述
详见f-string自定义格式总结博客

(二)字符串常用方法

方法说明
find() /rfind()查找返回一个字符串在另一个字符串中指定范围内(默认整个字符串)第一次出现/最后一次出现的位置, 如果不存在则返回-1
index() /rindex()返回一个字符串在另一个字符串指定范围内首次出现/最后一次出现的位置,如果不存在则抛出异常
count()返回一个字符串在另一个字符串中出现的次数,如果不存在则返回0
split()/rsplit()
partition()/rpartition()以指定的字符串(第一次/最后一次出现的位置)为分隔符,将原字符串分隔为三部分:前面部分、分隔字符串、后面部分,如果指定的分隔符不存在则返回原字符串和两个空字符串
join()用来将列表中的多个字符串进行连接,并在相邻两个字符串之间插入指定字符,返回一个连接后的字符串
lower() /upper()转换为小写 /大写
capitalize()字符串首字母转换为大写
title()每个单词首字母转换为大写
swapcase()大小写转换
repalce()查找替换,每次只能指定替换一个字符或字符串。此方法不修改原字符串而是返回一个新的字符串
translate()按映射表中定义的对应关系转换字符串并替换其中的字符,常与maketrans()方法组合使用
strip() /rstrip() / lstrip()删除字符串两端/右端/左端连续的空白字符或指定字符
eval()内置函数eval()用来把任意字符串转化为Python表达式并进行求值运算
center() /ljust() /rjust()原字符居中、左对齐、右对齐后返回指定宽度的新字符串,指定字符串对超出部分填充(默认空格)
zfill()返回指定宽度的字符串,在左侧以字符0进行填充
startswith()/endswith()判断字符串是否以指定字符串开始/结束。可以接收两个整数参数限定字符串检测范围

isalnum()/isalpha()/isdigit()/isdecimal()/isnumeric()/isspace()/isupper()/islower()----检测字符串是否为数字/字母/数字/十进制数/数字字符/空白字符/大写字母/小写字母

注1:

1.运算符“+”也可以用于连接字符串,但涉及大量数据的复制,效率低,不适合大量长字符串的连接,join()方法效率很高。
2.在Python中字符串属于不可变对象,不支持原地修改,如果需要修改其中的值只能重新创建一个新的字符串对象。
3.Python标准库textwrap提供了排版函数
4.切片也适用于字符串,但仅限于读取其中的元素,不支持字符串修改

注2:

部分灵感源于清华大学董付国老师及其编著的《Python可以这样学》,特别感谢!
以及csdn多位优秀博主的博客,非常感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值