Python3与字符串(二)
字符串
仅考虑零基础人员学习。
在讲解字符串前,先回顾数字数据类型,数字类型是无法表示文本的,此时表示文本就需要选择字符串数据类型。顾名思义,字符串就是一串字符的集合。
字符串学习归纳:字符串表示方法、字符串的使用方法、转义字符、ASCII码、字符串运算符。
(一)字符串的表示方法
python字符串表示是使用双引号或者单引号引起来,引号中间部分就是数据内容。(python字符串中包含了双引号或者单引号,字符串表示方式要与之相反,python对字符串的检测是以第一个双/单引号为开始,第二个双/单引号为结束)。
#创建字符串示例
str1 = '你好世界!'
str2 = "你好世界!"
print(str1)
print(str2)
#其中str1、str2是自定义标识符,进过赋值后编译可以发现str1和str2的输出是一样的,所以字符串用''与""对输出的数据无影响。
(二)字符串的使用方法
字符串的长度
使用方法:len(字符串自定义标识符)或者len(“字符串”),len是关键字。
mas = "hello world" #mas是字符串
print(mas) #方法名(参数)
len(mas) #此时产生一个新的数据,随机存储在寄存器中。
print(len("hello World")) #直接写入字符串
print(len(mas)) #写入字符串自定义标识符
字符串的大小写
有时候我们在输出字符串时需要包含的词语开头或整体输出为大小写字母,此时我们只需运用相对应的关键字就可以解决这类问题。
知识点:编译环境是以空格识别字符串中单词的开始与结束。
定义字符串:mas = ‘abc’
关键字 | 作用 |
---|---|
mas.title() | 使mas中首字母全变成大写,这个时候mas.title()的内容随机存储在寄存器中,而mas地址内的内容没有发生变化 |
mas.upper() | 使mas内字母全变成大写 |
mas.lower() | 使mas内字母全变成小写 |
mas.capitalize | 使mas第一个字母转化为大写字母,其余小写 |
#实例
mas = "abcd"
len1 = mas.title()
print(len1)
len2 = mas.upper()
print(len2)
mas1 = "ABCD"
len3 = mas1.lower()
print(len3)
len4 = mas1.capitalize()
print(len4)
print(mas1)
print(mas)
访问字符串的值
我们可以将字符串看成存储柜,字符串中的每一个字符都有序单独存储在一个格子中,而这个格子的排列数就是字符的下标数加1。例如:mas = ‘abcd 1234’,mas中从单括号开始a为第一个字符,在python中第一个字符从0下标开始,用mas[0]表示,0就称为下标。第二个字符就是mas[1],以此类推可以遍历字符串的全部数据。
注意:Python中是通过方括号来截取单个字符。
mas = "abcd"
print ("mas的第三个字符",mas[2])
字符串的7种拼接方法
字符串的拼接,顾名思义就是截取字符串并与其他字符串拼接在一起,从而产生连贯的文本。
1、用+号拼接字符串
在python中使用 “+” 拼接两个字符串时会生成一个新的字符串,生成新的字符串又需要重新申请内存,如果拼接多个字符串时效率就会降低,这就通过+号进行字符串拼接的操作效率低下的原因。
#+号拼接字符串示例
mas = "abcd"
mas1 = "ABCD"
print(mas+mas1) #可以直接相加自定义标识符
print("mas"+mas1) #自定义标识符和字符串相加
print("123456+123456") #字符串和字符串相加
2、用"".join()拼接字符串
此方法常用于集合/列表中,’’.join()其中’ '可以是空字符,也可以是其他转义字符,如果其他字符时,集合/列表中字符串会被该字符隔开。如果要将集合或列表转化为字符串通常使用这个方法。每当运用" ".join()都会产生一个新字符串。的
len1 = ["a","b","c"]
"".join(len1)
print('/'.join(len1)
3、用’’{}".format()拼接字符串
此方法中,"{}"中{}数量与format()括号中字符串个数相等
len1 = ["a","b","c"]
len2 = ".".join(len1)
s1 = "{}{}{}".format("a","b","c") #""中有3个{},()中对应3个字符串
print(s1)
s2 = '{} {}'.format(len1,len2)
print(s2)
4、用 % 操作符拼接字符串
%用法与"".format()类似,如"%s"%( )," "中%s个数与()中字符串个数相同。
len1 = ["a","b","c"]
len2 = ".".join(len1)
s1 = "%s %s %s"%("a","b","c")
print(s1)
s2 = '%s %s'%(len1,len2)
print(s2)
5、用 ()拼接字符串
中python中,编译器遇到未闭合的小括号,自动将多行拼接为一行,直到遇到对应的小括号为止。
mas = (
"a"
"b"
"c"11
)
print(mas)
6、用string模块中的Template对象拼接
这个方法会用到函数调用,因此推荐新手不要深入了解这个方法,之后学习完函数的调用,再回来看这个模块才是明智的选择。
Template包含于string,在我们运用它时,为了节省运行时间,只需调用Template,而不需要完全调用string。这个方法通过调用Template初始化一个字符串。这些字符串中包含了一个个键值(用key表示),下面代码中的s1、s2、s3就分别是一个键值。初始化字符串后,需要通过调用substitute或safe_subsititute,将key值与方法中传递过来的参数对应上,从而实现在指定的位置导入字符串,并将他们拼接起来。这种方式的好处是不需要担心参数不一致引发异常。
from string import Template
s = Template('${s1} ${s2}! ${s3}')
s.safe_substitute(s1='Hello',s2='World')
print(s.safe_substitute(s1='Hello',s2='World')) #s1是键值(key),Hello是参数
7、用F-strings拼接
在python3.6.2版本中,PEP 498 提出一种新型字符串格式化机制,被称为“字符串插值”或者更常见的一种称呼是F-strings,F-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化。
mas1 = 'Hello'
mas2 = 'World'
f'{mas1} {mas2}!'
print(f'{mas1}{mas2}!')
(三)字符串、转义字符与ASCII码
1、转义字符
在Python中,定义反斜杆 \ 为转义字符。
Python中如果需要在字符中使用特殊字符时,可以使用反斜杠 \ 转义字符。例如 ’ 表示字符串的开始或者结束,如果我们字符串中出现 ’ 该怎么办?如果直接输出编译器会报错,此时在 ’ 前面加上\就能将 ’ 转化成字面上的 ’ .
print("abc"dyfj") #这种书写是错误
print("abc\"def") #这是正确的编写方式
下面是常用的转义字符
转义字符 | 意义 | ASCII码(十进制) |
---|---|---|
\a | 响铃(BEL) | 007 |
\b | 退格(Backspace) | 008 |
\f | 换页,将当前位置移到下页开头 | 012 |
\n | 换号,将当前位置移到下一行开头 | 010 |
\r | 回车,将单前位置移到本行开头 | 013 |
\t | 水平制表,跳到下一个TAB位置 | 009 |
\v | 垂直制表 | 011 |
\ | 代表一个反斜杠\ | 092 |
’ | 代表一个单引号字符 | 039 |
" | 代表一个双引号字符 | 034 |
? | 代表一个问号 | 063 |
\0 | 空字符 | 000 |
\ddd | 1到3位八进制数所代表的任意字符,ddd | 三位八进制 |
\xhh | 16进制所代表的任意字符,hh | 十六进制 |
2、ASCII码
ASCII是电脑特定的交换标准代码。
链接: ASCII码.
(四)字符串运算符
顾名思义字符串运算符就是字符串与字符串的运算符号。
mas1 = "hello"
mas2 = "world"
操作符 | 描述 | 用法 |
---|---|---|
+ | 字符串连接符 | >>>mas1 +mas2 |
* | 重复输出字符串 | >>>mas1*3 |
[] | 通过索引获取字符串中字符 | >>>mas1[2] |
[:] | 截取字符串中的一部分 | >>>mas1[0:2] |
in | 成员运算符—如果字符串中包含给定的字符返回True | >>>“o” in mas1 |
not in | 成员运算符—如果字符串中不包括给定的字符返回True | >>>“H” not in mas2 |
r/R | 原始字符串—所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符.可理解为防止字符转义,如果路径中出现’\n’,不加r的话\n就会被转义,而加了’r’之后’\n’就能与字面相同。 | >>>r’\a’ |
% | 字符串的格式化输出 | >>>ptint (("%s"%(mas1)) |
mas1 = "hello"
mas2 = "world"
print(mas1+mas2)
print(mas1*3)
print(mas1[2])
print(mas1[0:2])
print("\tt")
print(r"\tt")
print("%s"%(mas1))
mas3 = 13
print(mas3)
print("%d"%(mas3))