赛捷软件论坛's Archiver

vicky.yu 发表于 2023-7-10 10:35

Python3 字符串

字符串(string,简写为str)是 Python 中最常用的数据类型之一。我们可以使用引号( ' 或 " )来创建字符串。

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

var1 = 'Hello World!'
var2 = "W3Cschool"
Python 访问字符串中的值
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。

Python 访问子字符串,可以使用方括号 ​[]​来截取字符串(这种方式也被称为切片),字符串的截取的语法格式如下:

变量[头下标:尾下标]
python截取的特点是取头下标的值到尾下标的值(尾下标的值不取)

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

从后面索引                   -9                 -8                 -7                 -6                 -5                -4                -3                -2                -1         
从前面索引                 0                1                2                3                4                5                6                7                8         
                 W                  3                C                s                c                h                o                o                l       
从前面截取         :                  1                2                3                4                5                6                7                8                :
从后面截取         :       
-8                -7                -6                -5                -4                -3                -2                -1                :
以下代码都是取字符C:

str="W3cschool"
print(str[2:3]) #使用截取方式,用正序进行截取
print(str[2:-6])#使用截取方式,正序和倒序混合使用
print(str[-7:-6])#使用截取方式,使用倒序进行截取
print(str[-7])#使用负索引获取单个字符C
print(str[2])#使用正索引获取单个字符C
切片的更多案例:

str="W3cschool"
#取W3C
print(str[:3])
print(str[:-6])

#取sch
print(str[3:6])
print(str[-6:-3])

#只有头下标/尾下标的情况
print(str[:3])
#只有尾下标的情况,默认头下标为0(正序的0,也就是字符串开始的地方)
#也就是从字符串开头截取到3的位置(也就是W3C)

print(str[3:])
#只有头下标的情况,默认尾下标为0(逆序的0,也就是字符串结束的地方)
#也就是从3的位置截取到字符串结尾(也就是school)

#更多应用
str2 ="https://www.w3cschool.cn/"
#截取协议名称
print(str2[:5]) #也就是截取前五位
#截取域名
print(str2[8:-1]) #也就是截取第八位到倒数第一位
尝试一下
Python转义字符
有一些字符因为在python中已经被定义为一些操作(比如单引号和双引号被用来引用字符串),而这些符号我们可能在字符串中需要使用到。为了能够使用这些特殊字符,可以用反斜杠 \ 转义字符(同样地,反斜杠也可以用来转义反斜杠)。如下表:

转义字符        描述        实例
\(在行尾时)        续行符       
>>> print("line1 \
... line2 \
... line3")
line1 line2 line3
>>>
\\        反斜杠符号       
>>> print("\\")
\
\'        单引号       
>>> print('\'')
'
\"        双引号       
>>> print("\"")
"
\a        响铃       
>>> print("\a")
执行后电脑有响声。
\b        退格(Backspace)       
>>> print("Hello \b World!")
Hello World!
\000        空       
>>> print("\000")

>>>
\n        换行       
>>> print("\n")


>>>
\v        纵向制表符       
>>> print("Hello \v World!")
Hello
       World!
>>>
\t        横向制表符       
>>> print("Hello \t World!")
Hello      World!
>>>
\r        回车,将 \r 后面的内容移到字符串开头,并逐一替换开头部分的字符,直至将 \r 后面的内容完全替换完成。       
>>> print("Hello\rWorld!")
World!
>>> print('google w3cschool taobao\r123456')
123456 w3cschool taobao
\f        换页       
>>> print("Hello \f World!")
Hello
       World!
>>>
\yyy        八进制数,y 代表 0~7 的字符,例如:\012 代表换行。       
>>> print("\110\145\154\154\157\40\127\157\162\154\144\41")
Hello World!
\xyy        十六进制数,以 \x 开头,y 代表的字符,例如:\x0a 代表换行       
>>> print("\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21")
Hello World!
\other        其它的字符以普通格式输出         
Python字符串运算符
下表实例变量 a 值为字符串 "Hello",b 变量值为 "W3Cschool":

操作符        描述        实例
+        字符串连接        a + b 输出结果: HelloW3Cschool
>>> a ="hello"
>>> b = "W3Cschool"
>>> a+b
'helloW3Cschool'
*        重复输出字符串        a*2 输出结果:HelloHello
>>> a ="hello"
>>> b = "W3Cschool"
>>> a*2
'hellohello'
[]        通过索引获取字符串中字符        a[1] 输出结果 e
>>> a ="hello"
>>> b = "W3Cschool"
>>> a[1]
'e'
[ : ]        截取字符串中的一部分(切片),遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的(详见上上节内容)。        a[1:4] 输出结果 ell
>>> a ="hello"
>>> b = "W3Cschool"
>>> a[1:4]
'ell'
in        成员运算符 - 如果字符串中包含给定的字符返回 True        'H' in a 输出结果 ​True​
>>> a ="hello"
>>> b = "W3Cschool"
>>> 'h' in a
True
not in        成员运算符 - 如果字符串中不包含给定的字符返回 True        'M' not in a 输出结果 ​True​
>>> a ="hello"
>>> b = "W3Cschool"
>>> 'M' not in a
True
r/R        原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(不区分大小写)以外,与普通字符串有着几乎完全相同的语法。       
>>> str="W3Cschool\n"

>>> str2=r"W3Cschool\n"

>>> print(str)

W3Cschool

>>> print(str2)

W3Cschool\n

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

在 Python 中,字符串的格式化使用与 C/C++中的printf函数有着一样的语法。

例如

#!/usr/bin/python3
name = "小明"
age = 10
print ("我叫 %s 今年 %d 岁!" % (name, age))
以上实例输出结果:

我叫 小明 今年 10 岁!
python字符串格式化符号:

    符   号        描述
      ​%c​         格式化字符及其ASCII码
     ​ %s​         格式化字符串
  ​   %d​         格式化整型
      ​%u​         格式化无符号整型
     ​ %o​         格式化无符号八进制数
      ​%x​         格式化无符号十六进制数
      ​%X​         格式化无符号十六进制数(大写)
     ​ %f​         格式化浮点数字,可指定小数点后的精度
     ​ %e​         用科学计数法格式化浮点数
      ​%E​         作用同​%e​,用科学计数法格式化浮点数
      ​%g​         ​%f​和​%e​的简写
      ​%G​         ​%f ​和​ %E​ 的简写
      ​%p​         用十六进制数格式化变量的地址
格式化操作符辅助指令:

符号        功能
*        定义宽度或者小数点精度
-        用做左对齐
+        在正数前面显示加号( + )
<sp>        在正数前面显示空格
#        在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0        显示的数字前面填充'0'而不是默认的空格
%        '%%'输出一个单一的'%'
(var)        映射变量(字典参数)
m.n.        m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.