Python(十)python字符串String(2)

简介: Python的字符串还是很有意思的。之前在使用PHP的时候,拼接字符串是一件很简单的事。

三:python转义符

转义字符 描述
(在行尾时) 续行符
\ 反斜杠符号
' 单引号
" 双引号
\a 响铃
\b 退格(Backspace)
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy 代表的字符,例如:\o12 代表换行,其中 o 是字母,不是数字 0。
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

 

四:python字符串运算符

下表实例变量 a 值为字符串 "Hello",b 变量值为 "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' )

 

例:

a = "Hello"
b = "Python"
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')

五:Python字符串格式化

Python的字符串还是很有意思的。

之前在使用PHP的时候,拼接字符串是一件很简单的事。

例如下边这样:

php

复制代码

<?php
       $str = "我是一个字符串,我有" . 10 . "个字符";
       echo $str

 

但是python中的字符串拼接,相对要麻烦一点,不同数据类型的变量是不可以直接像PHP中那样直接拼接的。

需要将非字符串类型的变量转换成字符串,再进行拼接。

string_ge = "我是一个字符串,我有" + str(10) +  "个字符"

print(string_ge)

 

这样写是没有问题的。但是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 是小数点后的位数(如果可用的话)

 

例:

string_geshi = "我是一个字符串,我有 %d 个字符" % (10)

print(string_geshi)

 

输出:

我是一个字符串,我有 10 个字符

六:使用三引号实现多行字符串

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

string_three = """
{(我是一个多行字符串 \n 很多行 \n 很多行 \n 很多行)}
……
"""
print(string_three)

输出:

{(我是一个多行字符串
 很多行
 很多行
 很多行)}
……

七:字符串常用操作

1:查找字符串

查找字符串我们常用的四个函数有

Index:从左向右查找字符串第一次出现的位置,未找到报异常

Rindex:从右向左查找字符串第一次出现的位置,未找到报异常

Find:从左向右查找字符串第一次出现的位置。未找到返回-1

Rfind:从右向左查找字符串第一次出现的位置,未找到返回-1

 python

复制代码

str = "hello hello"  
print(str.index('lo'))  
print(str.rindex('lo'))  
print(str.find('lo'))  
print(str.rfind('lo'))  
# print(str.index('xx'))  
# print(str.rindex('xx'))  
print(str.find('xx'))  
print(str.rfind('lxo'))

 

输出:

diff

复制代码

3
9
3
9
-1
-1

中间注释那两行print代码报异常,开发中建议使用find与rfind进行查找

 2:字符串大小写操作

关于字符串大小写转换的操作有以下函数:

Upper:把字符串中所有字符转换为大写

Lower:把字符串中所有字符转换成小写

Swapcase:将字符串中所有小写字符转换成大写,所有大写字符转换成小写

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

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

python

复制代码

str = "hello Hello"  
print(str.upper());  
print(str.lower());  
print(str.swapcase());  
print(str.capitalize());  
print(str.title());

输出:

复制代码

HELLO HELLO
hello hello
HELLO hELLO
Hello hello
Hello Hello

 3:字符串内容对其的操作方法

内容对其我们使用到的函数有:

Center:返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。设置长度小于字符长度,返回原字符串

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

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

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

python

复制代码

str = "hello World"  
print(str.center(20, '+'))  
print(str.ljust(20, '+'))  
print(str.rjust(20, '+'))  
print(str.zfill(20))

输出:

diff

复制代码

++++hello World+++++
hello World+++++++++
+++++++++hello World
000000000hello World

 4:字符串的拆分

字符串拆分我们用到的函数:

split(str="", num=string.count(str)):以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串,返回值是一个列表。

rsplit(str="", num=string.count(str)):以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num+1 个子字符串,返回值是一个列表。

python

复制代码

str = "hello World"  
print(str.split(' '))  
print(str.rsplit('Wo'))

输出:

css

复制代码

['hello', 'World']
['hello ', 'rld']

 5:字符串合并

字符串合并我们使用参数:

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

使用join的时候需要注意一下语法:

bash

复制代码

lists = ['hello', 'World']  
print("       ".join(lists))

输出:

复制代码

hello       World

 6:字符串替换操作

字符串替换我们需要用到 replace

python

复制代码

str = "hello World"  
print(str.replace('he','123456'))

输出:

123456llo World

 7:字符串编码与解码

字符编码与解码我们用到的函数:

encode(encoding='UTF-8',errors='strict'):以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

ini

复制代码

str = '侯门一入深似海,从此萧郎是路人';  
# 编码  
gbk = str.encode('GBK')  
utf = str.encode('UTF-8')  
print(gbk)  
print(utf)  
# 解码  
degbk = gbk.decode('GBK')  
deutf = utf.decode('UTF-8')  
print(degbk)  
print(deutf)

输出:

bash

复制代码

b'\xba\xee\xc3\xc5\xd2\xbb\xc8\xeb\xc9\xee\xcb\xc6\xba\xa3\xa3\xac\xb4\xd3\xb4\xcb\xcf\xf4\xc0\xc9\xca\xc7\xc2\xb7\xc8\xcb'
b'\xe4\xbe\xaf\xe9\x97\xa8\xe4\xb8\x80\xe5\x85\xa5\xe6\xb7\xb1\xe4\xbc\xbc\xe6\xb5\xb7\xef\xbc\x8c\xe4\xbb\x8e\xe6\xad\xa4\xe8\x90\xa7\xe9\x83\x8e\xe6\x98\xaf\xe8\xb7\xaf\xe4\xba\xba'

侯门一入深似海,从此萧郎是路人

侯门一入深似海,从此萧郎是路人

有好的建议,请在下方输入你的评论。

目录
相关文章
|
22天前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
119 64
|
13天前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
37 5
|
17天前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
24 7
|
24天前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
32 6
|
1月前
|
索引 Python
String(字符串)
String(字符串)。
29 3
|
2月前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
60 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
2月前
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
48 4
|
2月前
|
自然语言处理 Java 数据处理
【速收藏】python字符串操作,你会几个?
【速收藏】python字符串操作,你会几个?
61 7
|
2月前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
42 0