(二)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 垂直制表符
\ 一个\
单引号
‘’ 双引号
\ooo 3位八进制数对应的字符
\xhh 2位十六进制数对应的字符
\uhhhh 4位十六进制数表示的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'

数据格式控制:
(二)Python语法基础之字符串及其格式化方法(%-format、format、f-string)_第1张图片

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

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}部分即可,格式部分可省略。

(二)Python语法基础之字符串及其格式化方法(%-format、format、f-string)_第2张图片
详见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多位优秀博主的博客,非常感谢!

你可能感兴趣的:(Python基础语法,python,字符串,正则表达式,其他)