如下面定义的变量a,存储的是数字类型的值
总结:
单引号或者双引号或者三单引号或者三双引号中的数据,就是字符串
就是前面讲过的字符串格式化输出的几种方式
示例
name = "Cindy"
address = "四川省成都市"
print("大家好,我叫%s,我的老家在%s" %(name, address))
示例
name = "Cindy"
address = "四川省成都市"
print("大家好,我叫{},我的老家在{}".format(name, address))
示例
age = 11
name = "Cindy"
score = 85.5
string1 = f"我的名字叫{name},今年{age}岁,数学成绩是{score}分"
string2 = f'我的名字叫{name},今年{age}岁,数学成绩是{score}分'
string3 = f"""我的名字叫{name},今年{age}岁,数学成绩是{score}分"""
string4 = f'''我的名字叫{name},今年{age}岁,数学成绩是{score}分'''
print(string1)
print(string2)
print(string3)
print(string4)
a = 1
b = 2
print(f"a+b={a+b}")
输入也是使用在之前python基础知识中讲过的 input函数,通过它能够完成从键盘获取数据,然后保存到指定的变量中,再次提醒:input 获取的数据,都以字符串的方式进行保存,即使输入的是数字也是以字符串的方式保存
示例
studentId = input("请输入你的学号:")
print("你的学号是%s" % studentId)
字符串实际上就是字符的数组,所以它同列表和元组一样也支持下标索引
如有字符串 userName = “Cindy” ,其在内存中的实际存储如下图所示:
若想取出部分字符,就可以通过下标的方法(注意:下标从0开始;下标为负数时,Python是从后向前进行定位提取的,即若下标为负值,则表示反向检索,从后往前开始计数;取值超出范围会报错)
示例1
userName = "Cindy"
print(userName[0])
print(userName[3])
# -1为倒数第一个,-2为倒数第二个...
userName = "Cindy"
print(userName[-1])
print(userName[-3])
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始 : 结束 : 步长]
注意:选取的区间从“起始”位开始,到“结束”位的前一位结束(不包含结束位本身),即选取区间为左闭右开,步长表示选取间隔。
示例1
userName = "Cindy"
print(userName[0:6:2])
# 切片不写步长默认的步长为1
userName = "Cindy"
print(userName[0:3]) # 取出下标为0~2的字符
# 结束的位置不写值,取出的就是开始位置后面全部的值
userName = "Cindy"
print(userName[2:]) # 取下标为2开始到最后的字符
# 开始的位置不写值,取出的就是结束位置前面全部的值
userName = "Cindy"
print(userName[:3]) # 取下标为2及之前的字符
userName = "Cindy"
print(userName[1:-1]) # 取下标为1开始到倒数第二个之间的字符
# 步长为负数,表示从后往前取值,所以开始位置的值要大于结束位置的值
userName = "Cindy"
print(userName[5:0:-1])
# 步长为负,其它的地方不写,就是集合的逆序操作
userName = "Cindy"
print(userName[::-1])
find() 方法用于检测字符串中是否包含指定值,如果指定 start(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1。
语法如下:
string.find(value, start, end)
参数含义:
value:必选参数。指定要检索的字符串
start:可选参数。开始的索引,默认为0
end:可选参数。结束的索引,默认为字符串的长度
注意:find()函数在查找时,start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查
示例
text = "Hello,my name is Cindy"
print(text.find("my")) # 找到返回开始的索引
print(text.find("m",3,12)) # 搜索位置 3 到 11,字母 "m" 在字符串中首次出现的位置
print(text.find("m",7)) # 指定开始索引的位置为7
print(text.find("p")) # 没有找到返回-1
跟find( )方法几乎相同,区别在于如果找不到该值,index() 方法会报异常
语法如下:
string.index(value, start, end)
参数含义:
value:必选参数。指定要检索的字符串
start:可选参数。开始的索引,默认为0
end:可选参数。结束的索引,默认为字符串的长度
注意:index()函数在查找时,start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查
示例
text = "Hello,my name is Cindy"
print(text.index("my")) # 找到返回开始的索引
print(text.index("m",3,12)) # 搜索位置 3 到 11,字母 "m" 在字符串中首次出现的位置
print(text.index("m",7)) # 指定开始索引的位置为7
print(text.index("p")) # 没有找到会引发异常
返回指定值在字符串中出现的次数
语法如下:
string.count(value, start, end)
参数含义:
value:必选参数。指定要检索的字符串
start:可选参数。开始的索引,默认为0
end:可选参数。结束的索引,默认为字符串的长度
注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查
示例
text = "I don't want to learn English,but I have to learn it"
print(text.count("learn")) # 返回 "learn" 在字符串中出现的次数
print(text.count("learn",30,48)) # 从位置 30 到 47 进行检索
返回字符串,用一个指定的值替换另一个指定的值
语法如下:
string.replace(oldvalue, newvalue, count)
参数含义:
oldvalue:必选参数。要检索的字符串
newvalue :必选参数。替换旧值的字符串
count:可选参数。指定要替换的旧值出现次数。默认为替换所有出现的旧值。
示例
text = "row row row your boat,gently down the stream"
print(text.replace("row","line")) # 用 "line" 替换所有出现的单词 "row"
print(text.replace("row","line",2)) # 用 "line" 替换前两次出现的单词 "row"
在指定的分隔符处拆分字符串,并返回列表。可以指定分隔符,默认分隔符是任何空白字符。若指定 max,列表将包含指定数量加一的元素
语法如下:
string.split(separator, max)
参数含义:
separator:可选参数。规定分割字符串时要使用的分隔符。默认值为空白字符。
max:可选参数。规定要执行的拆分数。默认值为 -1,即“所有出现次数”
示例
text1 = "Nice to meet you"
print(text1.split()) # 将字符串拆分成一个列表,其中每个单词都是一个列表项
text2 = "Hello,my name is Cindy,nice to meet you"
print(text2.split(",")) # 使用逗号作为分隔符,分割字符串
text3 = "Bob、Alice、Cindy、David、Lisa"
print(text3.split("、",1)) # 将字符串拆分为最多2个项目的列表(仅分割1个字符串)
将字符串第一个字符大写,返回一个字符串
语法如下:
string.capitalize()
无参数
示例
text = "row row row your boat,gently down the stream"
print(text.capitalize())
把字符串的每个单词首字母大写,返回一个字符串,如果单词包含数字或符号,则其后的第一个字母将转换为大写字母
语法如下:
string.title()
无参数
示例
text1 = "nice to meet you"
print(text1.title()) # 将每个单词的首字母大写
text2 = "can you see 2dd and 5p3g"
print(text2.title()) # 非字母之后的第一个字母将转换为大写字母
如果字符串以指定的值开头,则 startswith( ) 方法返回 True,否则返回 False
语法如下:
string.startswith(value, start, end)
参数含义:
value:必选参数。检查字符串是否以其开头的值
start:可选参数。开始检索的位置
end:可选参数。结束检索的位置
注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查
示例
text = "Nice to meet you"
print(text.startswith("Nic")) # 检查字符串是否以 "Nic" 开头
print(text.startswith("mee",5,15)) # 检查位置 5 到 14 是否以字符 "mee" 开头
如果字符串以指定值结尾,则 endswith() 方法返回 True,否则返回 False
语法如下:
string.endswith(value, start, end)
参数含义:
value:必选参数。检查字符串是否以其结尾的值
start:可选参数。开始检索的位置
end:可选参数。结束检索的位置
注意:start处的字符将会被检查,而end是结束检索的索引,所以end索引处的字符不会参与检查
示例
text = "Nice to meet you."
print(text.endswith("meet you.")) # 检查字符串是否以短语 "meet you." 结尾
print(text.endswith("meet you.",5,16)) # 检查位置 5 至 15 是否以短语 "meet you." 结尾
lower() 方法返回一个字符串,将字符串全部转换为小写。符号和数字将被忽略
语法如下:
string.lower()
无参数
示例
text = "Hello,My NAME IS Cindy"
print(text.lower()) # 将字符小写
upper() 方法返回一个字符串,将字符串全部转换为大写。符号和数字将被忽略
语法如下:
string.upper()
无参数
示例
text = "nice to meet you"
print(text.upper()) # 将字符大写
lstrip() 方法删除所有前导字符,空格是要删除的默认前导字符
语法如下:
string.lstrip(characters)
参数含义:
characters:可选参数。一组作为前导字符要删除的字符
示例
text1 = " hello "
print("say",text1.lstrip(),"Cindy") # 删除字符串左侧的空格
text2 = "...,,app?.s..hello"
print(text2.lstrip(".,?aps")) # 删除前导字符
rstrip() 方法删除所有结尾字符(字符串末尾的字符),空格是要删除的默认结尾字符
语法如下:
string.rstrip(characters)
参数含义:
characters:可选参数。一组作为结尾字符要删除的字符。
示例
text1 = " hello "
print("say",text1.rstrip(),"Cindy") # 删除字符串右侧的空格
text2 = "hello...,,app?.s.."
print(text2.rstrip(".,?aps")) # 删除结尾字符
删除任何前导和结尾的字符,空格是要删除字符串两端的空格
语法如下:
string.strip(characters)
参数含义:
characters:可选参数。一组字符,要删除的前导/尾随字符
示例
text1 = " hello "
print("say",text1.strip(),"Cindy") # # 删除字符串开头和结尾两端的空格
text2 = "..ss.hello...,,app?.s.."
print(text2.strip(".,?aps")) # 删除前导和尾随字符
如果字符串中的所有字符都是数字,返回 True,否则返回 False
语法如下:
string.isdigit()
无参数
示例
text1 = "123456"
print(text1.isdigit()) # 检查字符串中所有字符是否都是数字
text2 = "hello123456"
print(text2.isdigit())
把可迭代对象的元素连接到字符串的末尾,必须将字符串指定为分隔符
语法如下:
string.join(iterable)
参数含义:
iterable:必选参数。所有返回值均为字符串的任何可迭代对象。
示例
text = "abcdef"
print(",".join(text)) # 使用 ,作为分隔符