由一组字符组成的有序序列称为字符串
字符串定义
使用双引号或者单引号包裹字面值
# 字符串的值必须包含在一对引号中
# 引号可以是单引号', 双引号"
string = 'abc'
string = "abc"
# 可以空格组合多个字符串
string = "abc" "cde"
# 当字符串很长的时候可以通过 \ 折行
string = "uvw" \
"xyz"
多行字符串定义
# docstring
# 支持换行显示,通常用于类与函数内部注释
# docstring推荐使用"""
string = '''啊!
春天,
是一个多情的季节
'''
print(string)
在屏幕上输出字符串
# hello world
print("hello world")
数字字符串
# 如果将数字放在引号内,将转换为一个字符串类型
number1 = 10
number2 = "10"
错误定义示例
# 错误示例,没有加引号,就是一个变量名
string = abc
# 字符串内包含单引号、双引号注意
# 内部引号不能与外部引号相同
string = "I'm a boy"
# 或者使用转义字符\
string = 'I\'m a boy'
string = "He say:\"ok\""
字符串切片
字符串是有序的.
"string"与"gnirts"虽然由完全相同的字符组成,但是顺序不同,最后的字符串意义也不同,所以字符串是有序序列
字符索引
字符串中的字符位置按照他们从左至右的顺序,从0递增,这种位置称为字符在字符串中的索引值
字符串在python中可以通过切片运算符来截取字符串的某个子片段:
- 切片符: [start:end:step], 从start位置开始切(包含start),切片到end位置(不包含end位置的元素), step为步长,每次切片跨越几个字符,默认为1
- 截取前3位字符(str) - string[0:3], 0可以省略 string[:3]
- 截取中间rin片段 - string[2:5]
- 截取末尾的ing片段 - string[3:],截取到末尾可以省略end, 另外也可以使用负向索引,从右往左数,从-1开始,string[-3:]
- 截取tig片段 - 观察string,可以发现每隔2个切片一次,step为2,string[1::2]
# 字符串切片示例
string = "猿变编程,轻松学python编程"
# [0:2], 从0开始截取,不包含2位置
string[0:2]
# [:2], 0可以省略
string[:2]
# 如果:也省略了,那就是截取索引值为2的
string[2]
# [-5:-1] , 从字符串右边往左截取,从-1的位置到-5的位置
string[-5:-1]
# 同样的-1也可以省略,表示从-5位置一直截取到字符串最右侧
string[-5:]
# 可以设定截取步长,第2个:号后面是步长
# 也就是每隔几个截取一个元素
string[::2]
字符串拼接
# 字符串可以通过"+" 进行拼接
string1 = "abc"
string2 = "def"
string = string1 + string2
# 字符串可以与一个整数N相乘,
# 返回一个重复N次的字符串
string = "abc"
string = string * 4
print(string)
# 但是不支持字符串与数字直接+运算,需要将数字首先转换为字符串
number1 = 10
string2 = "def"
# 错误的做法 - 比如数字与字符串直接相加
string = number1 + string2
# 正确的做法 - 先将数字类型(或者其他类型转换为字符串类型)再相加
string = str(number1)+string2
字符串类型转换
初学者通常会发生一些数据类型的错误,最典型的错误就是字符串类型的数字与数字类型的数字之间进行数学运算
错误示例
下面这种错误通常发生在初学者的代码中:
###################################################
# 当使用input接受用户输入的时候,值为字符串 #
###################################################
input_number = input("请输入一个数字:>>>")
my_number = 10
result = input_number + my_number
print(result)
在python3中,input
接收到用户的输入,无论输入的是数字还是字符串,input_number
都是一个字符串类型
,如果要让上面的代码能够正常运行,需要进行转换
正确示例
进行数学运算前,预先进行类型转换
###################################################
# 当使用input接受用户输入的时候,值为字符串 #
# 如果要对接受的值进行数学运算,需要先换转为数字 #
###################################################
input_number = input("请输入一个数字:>>>")
my_number = 10
result = float(input_number) + my_number
print(result)
上面的代码使用了float函数进行了转换,字符串转换为数字是有前提条件的,字符串必须是由数字组成的字符串,比如 "10", "1111",不能包含其他类型字符
讨论区