文章目录
一、基本数据类型
Python 中一共有6种基本数据类型,他们是:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
在这6个基本数据类型中,不可变数据 有3个:
- Number(数字)
- String(字符串)
- Tuple(元组)
可变数据 有3个:
- List(列表)
- Set(集合)
- Dictionary(字典)
各个数据可以使用特定的语句来进行转换,如int()、str()、float()、set()等。
本期内容我们详细介绍String(字符串)
这一类型。
二、String(字符串)
整数(string),简写为str
。
Python中字符串使用 ' '
(单引号)、 " "
(双引号)或''' '''
(三引号)包裹起来,比如 “str”,‘str’ 等。
以下这些都是字符串
类型。
a = 'Python'
b = "100"
c = '''关注作者'''
注:
- 不管引号是单引号、双引号还是三引号,它都是字符串;
- 不管引号内是英文、中文还是数字,它都是字符串;
(1)字符串拼接
在 Python 中,多个字符串进行拼接,直接使用操作符+
即可。
如下所示。
a = 'Pyth'
b = 'on'
print(a+b)
程序运行结果:
Python
小试牛刀
题目:运行以下程序,将输出_____。
a = 1
b = 2
c = '1'
d = '2'
print(a+b)
print(c+d)
正确答案:
3
12 # 这里输出的`12`其实是字符串类型,只是输出时会将引号省略
解析:程序一共有两个print()
语句,意味着将输出两个结果;变量a、b为数字中的整数类型,使用操作符+
会进行加法运算“1+2”,输出结果3
;而变量c、d为字符串类型,使用操作符+
会进行字符串拼接,输出结果'12'
。
总结:
- 操作符
+
在数字与数字之间时,进行加法运算;在字符串与字符串之间时,进行字符串拼接(在字符串与数字之间时,会报错); - Python 使用
print()
语句进行输出时,字符串会以省略引号的形式输出。
(2)字符串复制
关于字符串的复制操作,我们使用*
操作符。
如下
a = 'a'
print(a*5)
程序输出:
aaaaa
这种操作还是蛮简单的,需注意的是,对字符串进行*
操作会进行字符串的复制,而对数字进行*
操作,会进行乘法运算。
小试牛刀
题目:编写程序,输出20个“-”。
正确答案:
print('-'*20)
解析:通过操作符*
实现字符串的复制。
(3)字符串截取
字符串截取是一个重要的知识点,字符串的截取的语法格式如下:
字符串[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置。
实例如下:
string = 'Python'
# 输出字符串
print('输出字符串:', string)
# 输出第一个字符
print('输出第一个字符:', string[0])
# 输出第一个到倒数第二个的所有字符
print('输出第一个到倒数第二个的所有字符:', string[0:-1])
# 输出从第三个开始的后的所有字符
print('输出从第三个开始的后的所有字符:', string[2:])
# 输出从第三个前面的所有字符
print('输出从第三个前面的所有字符:', string[:2])
以上运行结果:
输出字符串: Python
输出第一个字符: P
输出第一个到倒数第二个的所有字符: Pytho
输出从第三个开始的后的所有字符: thon
输出从第三个前面的所有字符: Py
我们把通过具体某一个位置获取该位置的值的方式称为
普通索引
;
通过某一位置区间获取该位置区间内的值的方式称为切片索引
。
小试牛刀
题目:编写程序,输出字符串“python”的每一个字母(运用字符串索引)。
正确答案:
string = 'python'
for i in range(6):
print(string[i])
解析:通过range()
循环6次,每次提取字符串索引。
拓展:更便捷的方法(不运用字符串索引,运用for
循环遍历字符串)。
string = 'python'
for i in string:
print(i)
(4)字符串转义
Python 使用反斜杠 \
转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r
,表示原始字符串:
print('Py\nthon') # 转义字符“\n”表示换行
>>> Py
thon
print(r'Py\nthon')
>>> Py\nthon
注意:
- 反斜杠
\
可以用来转义,使用r可以让反斜杠不发生转义。 - 字符串可以用+运算符连接在一起,用*运算符重复。
- Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
- Python中的字符串不能改变。
小试牛刀
题目:编写程序,输出以下结果。
1
-
1
-
1
-
正确答案:
for i in range(3):
print('1\n-')
解析:通过for
循环range
3次,每次输出字符串(运用转义字符\n
进行换行)。
(5)获取字符串长度
使用len()
指令可以获取字符串的长度(len()
指令同样适用于获取列表、元组、字典等数据类型的长度)。
string = 'python'
print(len(string))
程序输出:
6
小试牛刀
题目:编写程序,输出字符串“python is a code language”的长度。
正确答案:
string = 'python is a code language'
print(len(string))
输出:
25
解析:通过len()
指令来获取字符串的长度。
(6)查找字符串
查找字符串有两种方法,第一种方法是使用find()
指令,第二种方法是使用in
和not in
。
方法一:find()
find()
指令会查找字符串内的另一个字符串,并返回对应的索引(不存在则返回-1
)
示例一:
print('python'.find('t'))
程序输出:
2
示例二:
print('python'.find('a'))
程序输出:
-1
方法二:in 与 not in
用
in
查找:返回True(真)
表示在字符串内,返回False(假)
表示不在字符串内。
用not in
查找:返回True(真)
表示不在字符串内,返回False(假)
表示在字符串内。
print('p' in 'python')
print('a' in 'python')
print('p' not in 'python')
print('a' not in 'python')
程序输出:
True
False
False
True
小试牛刀
题目:编写程序,如果字符串“e”在“hello”内,则输出1,否则输出2。
正确答案:
if 'e' in hello:
print(1)
else:
print(2)
输出:
1
解析:用in
语句判断是否在字符串内。
(7)字符串分隔
字符串分隔使用split()
命令,使用此命令将返回一个列表。
string = '1,2,3,4,5'
print(string.split(' '))
程序输出:
['1', '2', '3', '4', 5]
小试牛刀
题目:运行以下程序,将输出( ):
string = 'python is a code language'
a = string.split(' ')
print(a[0])
- A.python is a code language
- B.python
- C.code
- D.程序报错
正确答案:B
解析:split()
指令分隔字符串,将字符串按照括号内的内容进行分隔(即空格 ' '
)并赋值到变量a中,此时变量a
的值是一个列表( [‘python’, ‘is’, ‘a’, ‘code’, ‘language’] ),最后输出了变量a
的索引0
(索引为0,就是第一项),也就是'python'
。
拓展:列表的索引与字符串一样,只不过返回的是列表的各个项。