前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python语法必备篇——Python字符串 学习

Python语法必备篇——Python字符串 学习

作者头像
呆呆敲代码的小Y
发布2021-12-08 17:04:37
6320
发布2021-12-08 17:04:37
举报
文章被收录于专栏:呆呆敲代码的小Y 公众号

目录

前言

Python语法必备篇——字符串 学习

本篇文章来讲一下Python中的字符串,方便我们学习

字符串的意思跟字面意思很像,就是“一串字符”,字符串是 Python 中最常用的数据类型。

Python 要求字符串必须使用引号括起来,使用单引号也行,使用双引号也行,只要两边的引号能配对即可。

Python3 直接支持 Unicode,可以表示世界上任何书面语言的字符。

Python3 的字符默认就是 16 位 Unicode 编码,ASCII 码是 Unicode 编码的子集。

创建字符串很简单,只要为变量分配一个值即可,例如以下代码:

代码语言:javascript
复制
str1 = 'Hello,World”'
str2 = "呆呆敲代码的小Y"
print(str1)
print(str2)

输出结果:

Hello,World 呆呆敲代码的小Y

访问字符串

Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:

代码语言:javascript
复制
变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。


字符串拼接

Python 使用加号(+)作为字符串的拼接运算符,例如如下代码:

代码语言:javascript
复制
s1 = "Python "
s2 = "小Y"
#使用+拼接字符串
s3 = s1 + s2
print(s4)

输出结果:

Python 小Y

还可以截取字符串的一部分并与其他字段拼接,如下实例:

代码语言:javascript
复制
var1 = 'Hello World!'
 
print ("已更新字符串 : ", var1[:6] + '小Y!')

输出结果

已更新字符串 : Hello 小Y!

但是有时候会遇到字符串拼接数值的情况,这个时候并不能直接将他们添加到一起

可以使用str() 或 repr() 函数来解决问题

代码语言:javascript
复制
s = "数字: "
p = 66.6
#字符串直接拼接数值,程序报错
print(s + p)
#使用str()将数值转换成字符串
print(s + str(p))
#使用repr()将数值转换成字符串
print(s + repr(p))

str() 和 repr() 函数都可以将数值转换成字符串,其中 str 本身是 Python 内置的类型(和 int、float 一样),而 repr() 则只是一个函数。

Python转义字符

Python中有很多转义字符,我们一起来看一下一些常用的转义字符

转义字符

描述

(在行尾时)

续行符

\

反斜杠符号

单引号

"

双引号

\b

退格(Backspace)

\n

换行

\t

横向制表符

\r

回车

为什么要用这些转义符呢,因为某些难以用字符表示的效果 需要使用“+特殊字符”来实现

Python字符串运算符

有时候我们需要对一些字符串进行一些个简单的拼接等运算

所以python中也有一些专门的运算符给我们做此使用

操作符

描述

实例

+

字符串连接

a + b 输出结果: HelloPython

*

重复输出字符串

a*2 输出结果:HelloHello

[]

通过索引获取字符串中字符

a[1] 输出结果 e

[ : ]

截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。

a[1:4] 输出结果 ell

in

成员运算符 - 如果字符串中包含给定的字符返回 True

‘H’ in a 输出结果 True

not in

成员运算符 - 如果字符串中不包含给定的字符返回 True

‘M’ not in a 输出结果 True

r/R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

print( r’\n’ )print( R’\n’ )

下面来结合实例看一下具体的字符串运算符用法!

代码语言:javascript
复制
a = "Hello"
b = "小Y"
 
print("a + b 输出结果:", a + b)
print("a * 2 输出结果:", a * 2)
print("a[1] 输出结果:", a[1])
print("a[1:4] 输出结果:", a[1:4])
 
if( "H" in a) :
    print("H 在变量 a 中")
else :
    print("H 不在变量 a 中")
 
if( "M" not in a) :
    print("M 不在变量 a 中")
else :
    print("M 在变量 a 中")
 
print (r'\n')
print (R'\n')

输出结果:

a + b 输出结果: Hello小Y a * 2 输出结果: HelloHello a[1] 输出结果: e a[1:4] 输出结果: ell H 在变量 a 中 M 不在变量 a 中 \n \n

Python 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。例如:

代码语言:javascript
复制
print ("我叫 %s 今年 %d 岁!" % ('小Y', 25))

输出结果:

我叫 小Y 今年 25 岁!

还可以使用 str.format() 来实现,可以通过 {} 和 : 来代替以前的 % 。例如:

代码语言:javascript
复制
>>> a = "名字是:{0},年龄是:{1}"

>>> a.format("高淇",18)
'名字是:高淇,年龄是:18'

>>> a.format("高希希",6)
'名字是:高希希,年龄是:6'

python字符串格式化符号:

符 号

描述

%c

格式化字符及其ASCII码

%s

格式化字符串

%d

格式化整数

%u

格式化无符号整型

%o

格式化无符号八进制数

%x

格式化无符号十六进制数

%X

格式化无符号十六进制数(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

作用同%e,用科学计数法格式化浮点数

%g

%f和%e的简写

%G

%f 和 %E 的简写

%p

用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号

功能

*

定义宽度或者小数点精度

-

用做左对齐

+

在正数前面显示加号( + )

在正数前面显示空格

#

在八进制数前面显示零(‘0’),在十六进制前面显示’0x’或者’0X’(取决于用的是’x’还是’X’)

0

显示的数字前面填充’0’而不是默认的空格

%

‘%%‘输出一个单一的’%’

(var)

映射变量(字典参数)

m.n.

m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)


Python三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。实例如下

简单实例如下:

代码语言:javascript
复制
para_str = """一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)

输出结果:

这是一个多行字符串的实例 多行字符串可以使用制表符 TAB ( )。 也可以使用换行符 [ ]。

使用这个三引号有一个很方便的点,就是当我们需要表示一个很复杂的字符串代码段时 比如HTML或者SQL语句,这个时候使用转义字符就会非常麻烦,而使用三引号就非常方便。例如:

代码语言:javascript
复制
errHTML = '''

Friends CGI Demo
ERROR
%s


'''
cursor.execute('''
CREATE TABLE users (  
login VARCHAR(8), 
uid INTEGER,
prid INTEGER)
''')

可变字符串

由于Python中的字符串是属于不可变对象,不支持原地修改

但是我们有时候确实需要进行原地修改的时候也可以使用 io.StringIO对象array 模块进行修改

例如:

代码语言:javascript
复制
>>> import io
>>> s = "hello, xiaoY"
>>> sio = io.StringIO(s)
>>> sio
<_io.StringIO object at 0x02F462B0>
>>> sio.getvalue()
'hello, xiaoY'
>>> sio.seek(11)
11
>>> sio.write("Z")
1
>>> sio.getvalue()
'hello, xiaoZ'

使用 input 获取用户输入

input() 函数用于向用户生成一条提示,然后获取用户输入的内容。

由于 input() 函数总会将用户输入的内容放入字符串中,因此用户可以输入任何内容,input() 函数总是返回一个字符串。

代码语言:javascript
复制
msg = input("请输入你的值:")
print (type(msg))
print(msg)

第一次运行该程序,我们输入一个整数,运行过程如下:

请输入你的值:6 6

第二次运行该程序,我们输入一个浮点数,运行过程如下:

请输入你的值: 1.2 1.2

第三次运行该程序,我们输入一个字符串,运行过程如下:

请输入你的值:xiaoY xiaoY

从上面的几个实例可以看出,无论输入哪种内容,始终可以看到 input() 函数返回字符串,程序总会将用户输入的内容转换成字符串。


Python 的字符串内建函数

最后再来说一下Python 的字符串内建函数

什么是内建函数呢,简单来说就是Python为我们封装好的一些方法,可以拿来直接使用

下面来看一下表格,简单讲常用的 字符串内建函数 ,方便我们在写代码的时候快捷使用

序号

方法及描述

capitalize()

将字符串的第一个字符转换为大写

count(str, beg= 0,end=len(string))

返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

bytes.decode(encoding=“utf-8”, errors=“strict”)

Python3 中没有 decode 方法,但我们可以使用 bytes 对象的 decode() 方法来解码给定的 bytes 对象,这个 bytes 对象可以由 str.encode() 来编码返回。

encode(encoding=‘UTF-8’,errors=‘strict’)

以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’

endswith(suffix, beg=0, end=len(string))

检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

expandtabs(tabsize=8)

把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8 。

find(str, beg=0, end=len(string))

检测 str 是否包含在字符串中,如果指定范围 beg 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1

index(str, beg=0, end=len(string))

跟find()方法一样,只不过如果str不在字符串中会报一个异常。

isalnum()

如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

isalpha()

如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False

isdigit()

如果字符串只包含数字则返回 True 否则返回 False…

islower()

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

isnumeric()

如果字符串中只包含数字字符,则返回 True,否则返回 False

isspace()

如果字符串中只包含空白,则返回 True,否则返回 False.

istitle()

如果字符串是标题化的(见 title())则返回 True,否则返回 False

isupper()

如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

join(seq)

以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

len(string)

返回字符串长度

ljust(width[, fillchar])

返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

lower()

转换字符串中所有大写字符为小写.

lstrip()

截掉字符串左边的空格或指定字符。

maketrans()

创建字符映射的转换表,对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串表示转换的目标。

max(str)

返回字符串 str 中最大的字母。

min(str)

返回字符串 str 中最小的字母。

replace(old, new [, max])

把 将字符串中的 old 替换成 new,如果 max 指定,则替换不超过 max 次。

rfind(str, beg=0,end=len(string))

类似于 find()函数,不过是从右边开始查找.

rindex( str, beg=0, end=len(string))

类似于 index(),不过是从右边开始.

rjust(width,[, fillchar])

返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

rstrip()

删除字符串末尾的空格或指定字符。

split(str="", num=string.count(str))

以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串

splitlines([keepends])

按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

startswith(substr, beg=0,end=len(string))

检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

strip([chars])

在字符串上执行 lstrip()和 rstrip()

swapcase()

将字符串中大写转换为小写,小写转换为大写

title()

返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

translate(table, deletechars="")

根据 str 给出的表(包含 256 个字符)转换 string 的字符, 要过滤掉的字符放到 deletechars 参数中

upper()

转换字符串中的小写字母为大写

zfill (width)

返回长度为 width 的字符串,原字符串右对齐,前面填充0

isdecimal()

检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。


总结

  • 本文介绍了Python中的字符串部分
  • 字符串是我们在写代码的时候最常用的一部分了
  • 这里介绍了包括访问字符串、字符串拼接、Python转义字符、Python字符串运算符、Python 字符串格式化、Python三引号、可变字符串、使用 input 获取用户输入、Python 的字符串内建函数等方法
  • 都是Python中比较常用的部分,可能也有没讲到的地方,大家可以自行查阅资料再进行学习
  • 其中部分表格也是参考了一些其他文章中的内容,在这里致谢了~
  • 如有哪个地方写的不对也希望大家可以在评论区指正修改哦
  • 觉得博主写的还不错记得三连支持一波哦~ 咱们下次再见啦!
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/12/07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 前言
  • Python语法必备篇——字符串 学习
    • 访问字符串
      • 字符串拼接
        • Python转义字符
          • Python字符串运算符
            • Python 字符串格式化
              • Python三引号
                • 可变字符串
                  • 使用 input 获取用户输入
                    • Python 的字符串内建函数
                    • 总结
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档