Python基础--字符串
2.3、字符串
2.3、前言
字符串虽然看似简单,但能够以很多不同的方式使用它们。字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号,如下所示:
'This is a string.'
"This is also a string."
在字符串中要注意引号(’)和撇号(’)
2.3.1、使用方法修改字符串的大小写
title() 方法 :每个单词首字母大写
name = 'ada lovePython'
print(name.title())
效果为:Ada Lovepython
upper() 方法:将所有字母都转为大写字母
name = 'ada lovePython'
print(name.upper())
效果为:ADA LOVEPYTHON
lower() 方法:将所有字母都转为小写字母
name = 'ada lovePython'
print(name.lower())
效果为:ada lovepython
存储数据时,方法lower()很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换为小写,再存储它们。以后需要显示这些信息时,再将其转换为最合适的大小写方式。
2.3.2、合并(拼接)字符串
在很多情况下,都需要合并字符串。例如,你可能想将姓和名存储在不同的变量中,等要显示姓名时再将它们合而为一:
代码如下:
first_name = 'tony'
last_name = 'lovelace'
full_name = first_name+" "+last_name
print(full_name)
输出效果如下:
tony lovelace
2.3.3、使用制表符或换行符来添加空白
‘
\t
’ --> 代表 空白
‘\n
’ --> 代表 换行
name = 'Languages:\nPython\t\n\tJava\nC\nHTML'
print(name)
效果如下:
Languages:
Python
Java
C
HTML
2.3.4、删除空白
rstrip() -> 表示去掉字符串中 末尾 多余的空格
lstrip() -> 表示去掉字符串中 开头 多余的空格
strip() -> 表示去掉字符串中 两端 多余的空格
在实际程序中,这些剥除函数最常用于在
存储用户输入前
对其进行清理。
2.3.5、字符串相关字符操作
1、字符串截取(检索)
类似于C,字符串的第一个字符索引为0。Python没有单独的字符类型;一个字符就是一个简单的长度为1的字符串。如下所示:
第一种截取方法:索引为正数
word = 'Python'
print(word[0])
输出效果:P
word = 'Python'
print(word[2])
输出效果:t
第二种截取方法:索引为负数
word = 'Python'
print(word[-1])
输出效果:n
word = 'Python'
print(word[-6])
输出效果:P
小结:请注意-0实际上就是0,所以它不会导致从右边开始计算,所以索引为负数时,则是从-1开始计算。
2、字符串----切片
除了索引,还支持切片。索引用于获得单个字符,切片可以获得一个字符串。如下所示:
第一种切片方法:索引有两个
word = 'Python'
print(word[0:2])
输出效果:Py
word = 'Python'
print(word[2:5])
输出效果:tho
如果
索引
使用太大
,则会
导致报错
。如下所示:
word = 'Python'
print(word[45])
错误提示:
Traceback (most recent call last):
File "E:/pythonProject/Demo/demo.py", line 2,
in <module>
print(word[45])
IndexError: string index out of range
第二种切片方法:索引有一个
切片的索引有非常有用的默认值;省略的第一个索引默认为零,省略的第二个索引默认为切片的字符串的大小。
word = 'Python'
print(word[-2:])
输出效果:on
word = 'Python'
print(word[:2])
输出效果:Py
word = 'Python'
print(word[4:])
输出效果:on
word = 'Python'
print(word[:2]+word[2:])
输出效果:Python
注意,切片的特点是
前包后不包
,就是不包含末尾的字符,这使得s[:i] + s[i:]永远等于s
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5
-6 -5 -4 -3 -2 -1
- 文本中的第一行数字给出字符串中的索引点 0…5。第二行给出相应的负索引。切片是从 i 到 j 两个数值标示的边界之间的所有字符。
对于非负索引,如果上下都在边界内,切片长度就是两个索引之差。例如,word[1:3] 是 2
- python可以自动处理没有意义的切片索引:一个过大的索引值(即下标值大于字符串实际长度)将被字符串实际长度所代替,当上边界比下边界大时(即切片左值大于右值)就返回空字符串 如下所示:
#第一类
word = 'Python'
print(word[4:45])
输出效果:on
#第二类,输出空串
word = 'Python'
print(word[46:])
输出效果:
注意!注意!注意!:Python字符串时不可被更改的,也就是说它们是不可变的,因此,赋值给字符串索引的位置会导致错误。如下所示:
word = 'Python'
wod = word[0]='J'
print(wod)
错误提示:
Traceback (most recent call last):
File "E:/pythonProject/Demo/demo.py", line 2, in <module>
wod = word[0]='J'
TypeError: 'str' object does not support item assignment
#翻译:str对象不支持赋值
如果需要组成一个不同的字符串,我们可以创建有个新的。
如下所示:
word = 'Python'
wod = 'J'+word[1:]
print(wod)
输出效果:Jython
word = 'Python'
wod = word[2:] + 'J' + word[2:3]
print(wod)
输出效果:thonJt
2.3.6、字符串内置函数
len():表示返回字符串的长度。如下所示:
word = 'Python\nPython\nC\nJava\nJavaScript'
print(len(word))
输出效果:31