字符串:数据使用引号进行包裹,该数据就是字符串。
字符串的表现形式:
- 单引号字符串,比如
‘abc’
。- 双引号字符串,比如
“abc”
。- 三个单引号字符串,比如
’’’abc’’’
。- 三个双引号字符串,比如
””"abc”””
。
当字符串中的内容只有一行的时候,可以使用单引号或者双引号,当字符串中的内容有多行时,可以使用三引号字符串
字符串的输入和输出:个人名片
# 接收字符串数据 name = input("请输入您的姓名:") age = int(input("请输入您的年龄:")) job = input("请输入您的工作:") print("------------------------") print("姓名:%s" % name) print("年龄:%s" % age) print("工作:%s" % job) print("------------------------")
输出结果:
3.1.1 f-string
f-string
:用来给字符串动态绑定数据,只能在Python3.6
及以上版本才能使用,如果兼容之前的代码可以使用字符串的格式化输出。
语法格式:f “姓名:{‘李四’} 年龄:{20}”
f-strings
以字母f
或F
为前缀,格式化字符串使用一对单引号、双引号、三单引号、三双引号。
示例一:
name = input("请输入您的姓名:") age = input("请输入您的年龄:") msg = f"姓名:{name} 年龄:{age}" print(msg)
输出结果:
示例二:利用 f-string 实现 4 + 3 = 7。
num1 = int(input("请输入第一个数字:")) num2 = int(input("请输入第二个数字:")) result = F'{num1} + {num2} = {num1 + num2}' print(result)
输出结果:
3.1.2 下标
下标:又称为索引,其实就是一个号码或者数字,在python
里面下标分为正数下标和负数下标。
学习下标的目的:根据下标获取相对应的数据。
结合下标使用的数据类型有:字符串、列表、元组、range
。
下标获取指定数据的语法格式:value = 变量[下标]
下标0表示第一个数据,下标-1表示倒数第一个数据。
注意点:下标不能越界。越界:不能超出下标的合法范围。
my_str = "abcdefg" value = my_str[1] print(value) # 结果是:b value = my_str[-4] print(value) # 结果是:d value = my_str[3] print(value) # 结果是:d value = my_str[12] print(value) # 结果报错:IndexError: string index out of range 即下标越界 my_range = range(1, 10, 2) for value in my_range: print(value) # 结果是:1、3、5、7、9 result = my_range[2] print(result) # 结果是:5 result = my_range[-1] print(result) # 结果是:9 result = my_range[10] print(result) # 结果报错:IndexError: range object index out of range 即下标越界
3.1.3 切片
切片:其实就是一个下标范围,根据下标范围获取容器类型(字符串、range
、列表、元组)中的一部分数据。
语法格式:变量名 [ 开始下标:结束下标:步长 ]
结束下标不包含
目的:利用切片,完成获取字符串中的一部分操作。
切片指定的范围不正确,系统不会崩溃,获取的数据是空的字符串。
示例一:利用切片获取字符串的前三个数据
my_str = "abcdef" result = my_str[0:3:1] # 结束下标包含 [0,2] print(result) # 结果是:abc # 步长不指定默认1 result = my_str[0:3] # 结束下标包含 [0,2] print(result) # 结果是:abc # 简写方式 # 步长不指定默认1,如果步长是正数,开始下标不指定表示从第一个数据开始获取 result = my_str[:3] # 结束下标包含 [0,2] print(result) # 结果是:abc
示例二:利用切片获取字符串的后三个数
my_str = "abcdef" result = my_str[3:6] print(result) # 结果是:def # 简写方式 # 步长不指定默认1,如果步长是正数,不指定结束下标,表示能够获取到最后一个数据 result = my_str[3:] print(result) # 结果是:def # 步长不指定默认1,如果步长是正数,不指定结束下标,表示能够获取到最后一个数据 result = my_str[-3:] print(result) # 结果是:def
示例三:利用切片获取字符串中的整个数据
my_str = "abcdef" result = my_str[0:6] print(result) # 结果是:abcdef # 步长不指定默认为1,不指定结束下标,表示能够获取到最后一个数据 result = my_str[0:] print(result) # 结果是:abcdef # 简写方式 # 步长默认是1,不指定开始,表示从第一个数据开始获取,不指定结束下标,表示能够取到最后一个数据 result = my_str[:] print(result) # 结果是:abcdef
示例四:利用切片从后向前获取字符串数据
my_str = "abcdef" # 从后往前取数据,取出fed,步长为负数表示从右边往左边取值 result = my_str[-1:-4:-1] print(result) # 结果是:fed # 如果步长为负数,结束下标不指定,表示能够获取到第一个数据 result = my_str[-1::-1] print(result) # 结果是:fedcba # 字符串反转的简写方式:从倒数第一个数据一直取到正数第一个数据 # 如果步长为负数,开始下标不指定表示从倒数第一个数据开始取值,结束下标不指定表示能够获取到正数第一个数据 result = my_str[::-1] print(result) # 结果是:fedcba
示例五:切片不合法,数据取不到,程序不会崩溃
my_str = "abcdef" # 切片不合法,数据取不到,程序不会崩溃 result = my_str[5:1:2] print(result) # 结果是:空 # 正确写法 result = my_str[5:1:-2] print(result) # 结果是:fd # 没有指定步长,默认1,表示从左到右获取数据 # 步长为正数,开始下标不指定,表示从第一个数据开始获取,结束下标不包含 result = my_str[:-1] print(result) # 结果是:abcde
总结:
- 如果步长是正数,表示从左往右依次取值。
- 如果步长是负数,表示从右往左依次取值。
- 索引是通过下标取某一个元素。
- 切片是通过下标去某一段元素。