学习目标
1.掌握 字符串的定义格式
2.掌握 字符串格式化
3.熟悉 字符串的常见操作
4.1 字符串介绍
字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。
Python支持使用单引号、双引号和三引号定义字符串
i='hello'
i="helle'
i='"hello"'
#其中单引号和双引号通常用于定义单行字符串
#三引号通常用于定义多行字符串。
转义字符:反斜杠“\”
print('let\'s learn Python') #普通字符
let's learn Python
转义字符:
4.2.1 使用%格式化字符串
不同的占位符为不同类型的变量预留位置,常见的占位符如下所示。
4.2.2 使用format()方法格式化字符串
格式化方法
1.虽然使用%可以对字符串进行格式化,
2.Python为字符串提供了一个格式化方法format()。
#第二种一般常用一些
基本语法是通过 {} 和 : 来代替以前的 %
format 函数可以接受不限个参数,位置可以不按顺序
例子:
import java.util.*; public class FormatOfFormatter { public static void main(String[] args) { //实例化一个StringBuffer和Formmatter对象 StringBuffer sb = new StringBuffer(); Formatter formatt = new Formatter(sb, Locale.UK); //通过使用format(locale,format,Object ...)方法是 //用给定的语言环境格式化字符串 formatt.format(Locale.UK, "Hi %s !", "NHOOO"); //显示格式化的字符串 System.out.println(formatt); //通过使用format(format,Object ...)方法是 //使用默认语言环境格式化字符串 formatt.format("Hi %s !", "NHOOO"); //显示格式化的字符串 System.out.println(formatt); } }
结果:
Hi NHOOO ! Hi NHOOO !Hi NHOOO !
4.2.3 使用f-string格式化字符串
f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。
f('{变量名}') 或F('{变量名}')
4.3.1 进制转换
十进制是实际应用中最常使用的计数方式,除此之外,还可以采用二进制、八进制或十六进制计数。
#一般计算机只能识别计算机语言,就是二进制
4.4.1 字符串的查找与替换
Python中提供了实现字符串查找操作的find()方法,该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1。
格式
str.find(sub[, start[, end]]
sub:指定要查找的子串。
start:开始索引,默认为0。
end:结束索引,默认为字符串的长度。
例子
word = 't'
string = 'Python'
result = string.find(word)
print(result)
结果:
2
4.4.1 字符串的查找与替换
Python中提供了实现字符串替换操作的replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。
格式:
str.replace(old, new[, count])
old:被替换的旧子串。
new:替换旧子串的新子串。
count:表示替换旧字符串的次数,默认全部替换
例子:
string = 'He said, "you have to go forward, ' \ '
Then turn left, Then go forward, and Then turn right."' # 指定替换两次
new_string = string.replace("Then", "then",2)
print(new_string)
结果:
He said, "you have to go forward, then turn left, then go forward, and Then turn right."
4.4.2 字符串的分隔与拼接
split()方法可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表
格式
str.split(sep=None, maxsplit=-1)
sep:分隔符,默认为空字符。
maxsplit:分割次数,默认值为-1,
表示不限制分割次数
例子:
string= "Hello, my name is Wang Hong" # 以空格作为分割符,并分割2次
print(string.split(' ', 2))
结果:
['Hello,', 'my', 'name is Wang Hong']
4.4.2 字符串的分隔与拼接
join()方法使用指定的字符连接字符串并生成一个新的字符串。join()方法的语法格式如下。
格式
str.join(iterable)
iterable:表示连接字符串的字符
例子:
symbol = '*' world = 'Python' print(symbol.join(world))
结果:
P*y*t*h*o
#Python还可以使用运算符“+”拼接字符串。
例:"py"+"thon"="python"
4.4.3 删除字符串的指定字符
字符串中可能会包含一些无用的字符(如空格),在处理字符串之前往往需要先删除这些无用的字符。Python中的strip()、lstrip()和rstrip()方法可以删除字符串中的指定字符。
strip()例子:
str = "00000003210Runoob01230000000";
print str.strip( '0' ); # 去除首尾字符 0
str2 = " Runoob "; # 去除首尾空格
print str2.strip();
结果:
3210Runoob0123
Runoob
lstip()例子:
str = " this is string example....wow "; print str.lstrip(); str = "88888888this is string example....wow!!!8888888"; print str.lstrip('8');
结果:
this is string example....wow!!! this is string example....wow!!!8888888
rstrip()方法例子:
random_string = 'this is good '
# 'si oo' 不是尾随字符,因此不会删除任何内容
print(random_string.rstrip('si oo'))
# 在 'sid oo' 中 'd oo' 是尾随字符,'ood' 从字符串中删除
print(random_string.rstrip('sid oo'))
website = 'www.runoob.com/'
print(website.rstrip('m/.'))
txt = "banana,,,,,ssqqqww....."
x = txt.rstrip(",.qsw")
print(x)
# 删除尾随字符 *
str = "*****this is string example....wow!!!*****"
print (str.rstrip('*'))
print(x)
结果:
str = "123abcrunoob321" print (str.strip( '12' ))
4.4.4 删除字符串的指定字符
upper()方法例子:
str = "this is string example....wow!!!"; print "str.upper() : ", str.upper()
结果:
str.upper() : THIS IS STRING EXAMPLE....WOW!!!
4.4.5 字符串对齐
在使用Word处理文档时可能需要对文档的格式进行调整,如标题居中显示、左对齐、右对齐等。Python提供了center()、ljust()、rjust()这3个方法来设置字符串的对齐方式。