Bootstrap

【 Python 全栈开发 - 语法基础篇 - 09 】Python 基本数据类型 —— 字符串


一、基本数据类型

Python 中一共有6种基本数据类型,他们是:

  1. Number(数字)
  2. String(字符串)
  3. List(列表)
  4. Tuple(元组)
  5. Set(集合)
  6. 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. 不管引号是单引号、双引号还是三引号,它都是字符串;
  2. 不管引号内是英文、中文还是数字,它都是字符串;

(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'

总结

  1. 操作符+在数字与数字之间时,进行加法运算;在字符串与字符串之间时,进行字符串拼接(在字符串与数字之间时,会报错);
  2. 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

注意:

  1. 反斜杠\可以用来转义,使用r可以让反斜杠不发生转义。
  2. 字符串可以用+运算符连接在一起,用*运算符重复。
  3. Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
  4. Python中的字符串不能改变。

小试牛刀

题目:编写程序,输出以下结果。

1
-
1
-
1
-

正确答案

for i in range(3):
	print('1\n-')

解析:通过for循环range3次,每次输出字符串(运用转义字符\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()指令,第二种方法是使用innot 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'
拓展:列表的索引与字符串一样,只不过返回的是列表的各个项。

;