导读:很多程序员处理文本而不是数字。文本包含字符:字母、数字、标点符号、空格等。字符串是一系列字符。例如,字符串"Hello"是一个包含5个字符的序列。
作者:凯·霍斯特曼(Cay Horstmann),兰斯·尼塞斯(Rance Necaise)
如需转载请联系华章科技
01 字符串类型你在输出语句的介绍中已经见过字符串了,例如
print("Hello")字符串可以保存在变量中
greeting = "Hello"然后就可以在需要的时候像数字值一样来访问:
print(greeting)字符串常量表示一个特定的字符串(例如"Hello"),就像数字常量(例如2)表示一个特定的数字一样。在Python中,字符串常量由包含在一对单引号或双引号中的字符序列来指定。
print("This is a string.", 'So is this.')因为允许使用两种界定符,Python可以很容易地在字符串中包含撇号或者引号。
message = 'He said "Hello" '我们使用双引号来包含字符串,因为这在很多其他编程语言中是一个通用的约定。然而,在交互式Python解释器环境中总是使用单引号来显示字符串。
字符串中字符的数量称作字符串的长度。例如,"Harry"的长度是5。你可以使用Python内置函数len来计算一个字符串的长度:
length = len("World!") # 长度为6长度为0的字符串称作空字符串,它不包含字符,写作:
""或者
'' 02 连接与重复给定两个字符串,例如"Harry"和"Morgan",你可以把它们连接成一个字符串,结果中包含两个字符串中的所有字符,其中第一个字符串中的字符在前,第二个字符串中的字符在后。在Python中,你可以使用 运算符连接两个字符串。例如:
firstName = "Harry" lastName = "Morgan" name = firstName lastName结果字符串为
"HarryMorgan"如果你想在名和姓之间使用空格进行分隔该怎么做?没问题:
name = firstName " " lastName这个语句连接了3个字符串:firstName、字符串常量" "和lastName。结果是
"Harry Morgan"如果 运算符的左侧或右侧的表达式是字符串,那么另一侧的表达式也必须是字符串,否则会导致语法错误。你不能把字符串和数字连接到一起。
你也可以通过对一个字符串进行多次重复来产生字符串。例如,假设你需要打印一行破折线。不需要指定一个包含50个破折线的字符串常量,你可以使用*运算符来创建一个包含50个"-"字符的字符串。例如,
dashes = "-" * 50结果是字符串
"-------------------------------------------------"任意长度的字符串都可以使用*运算符进行重复。例如,语句
message = "Echo..." print(message * 5)显示
Echo...Echo...Echo...Echo...Echo...与字符串相乘的因子必须是整数值,并且可以出现在*运算符的任意一侧,但是习惯上把字符串放在左侧而整数因子放在右侧。
03 转换数字和字符串有时候需要把数字转换为字符串。例如,假设你需要在字符串尾部追加一个数字。你不能连接字符串和数字:
name = "Agent " 1729 # 错误:只能连接字符串因为字符串连接只能在两个字符串之间进行,我们必须首先把数字转换为字符串。
为了生成数字值的字符串表示,使用函数str。语句
str(1729)把整数1729转换为"1729",函数str解决了我们的问题:
id = 1729 name = "Agent " str(id)函数str也可以用来把浮点数转换为字符串。
反过来,为了把包含数字的字符串转换为数字值,可以使用函数int或float:
id = int("1729") price = float("17.29")当字符串来自于用户输入时,这个转换很重要。
传递给函数int或float的字符串只能包含隐含类型的常量。例如,语句
value = float("17x29")会产生运行时错误,因为字母"x"不是浮点数常量的一部分。
前面和后面的空白字符会被忽略:
int(" 1729 ")仍然是1729。
04 字符串与字符字符串是Unicode字符的序列。你可以使用字符串和位置来访问单个字符,这个位置称作字符的索引。
第1个字符的索引是0,第2个的索引是1,以此类推。

通过特殊的下标记号可以访问单个字符,位置被放置在方括号中。例如,变量name定义如下:
name = "Harry"语句
first = name[0] last = name[4]从字符串中提取了两个不同的字符。第一个语句提取出字符串的第一个字符"H"并存入变量first。第二个语句提取位置4上面的字符,也就是最后一个字符,然后存入变量last。

索引值必须位于字符位置的合法范围,否则会在运行时抛出下标越界异常。函数len可以用来确定最后一个索引,或者字符串的最后一个字符。
pos = len(name) - 1 # "Harry"的长度是5 last = name[pos] # last被设置为"y"下面的程序演示了上面概念的用法,程序使用字符串初始化了两个变量,一个使用你的名字,另一个使用你认为比较重要的人的,然后输出首字母。
操作first[0]得到包含first第一个字母的字符串,second[0]获取第二个名字的首字母。最后,使用字符串"
制图网(www.makepic.net),专业的logo免费设计在线生成网站,全自动智能化logo设计,商标设计,logo在线生成!
欢迎使用制图网制作属于您公司自己的logo,不仅专业而且经济实惠,全方位满足您公司品牌化、视觉化的需求。
只需简单一步,使用微信扫码(或长按识别二维码)并在任一小程序首页根据提示获取激活码!
chatGPT中文网页版,无需注册,快来体验全网最火爆的人工智能应用!
只需简单一步,使用微信扫码(或长按识别二维码)并在任一小程序首页根据提示获取激活码!
chatGPT中文网页版,无需注册,快来体验全网最火爆的人工智能应用!