Python基础教程——2.3 python字符串


字符串是 Python 中最常用的数据类型。

字符串的定义

在Python中创建字符串很简单,只要为变量分配一个值即可,如下:

my_word = "python"
my_word = 'python'
my_word = """python"""

上述三种方法都是可以的,如果定义的内容中有引号怎么办?

my_word = "'小明'"  # 如果定义内容中有单引号可以使用双引号包裹
my_word = '"小明"'  # 如果定义内容中有双引号可以使用单引号包裹
my_word = """小'"明"""  # 三引号原则上可以包裹一切

字符串输入

在前边学习python的输入输出时,其实已经初步了解了字符串的输入输出,我们再来回顾以下一下:

注意:input获取的数据,都以字符串的方式进行保存,即使输入的是数字,那么也是以字符串方式保存

userName = input('请输入账号:')
print(f"用户名为:{userName}")

password = input('请输入密码:')
print(f"密码为:{password}")

输出结果随输入不同而不同

请输入用户名:admin
用户名为: admin
请输入密码:123456
密码为: 123456

字符串输出

字符串的输出其实跟之前的章节是一样的,那边讲的更详细(传送门

weather= "晴天"
temperature= "30摄氏度"

print('---------------------华丽的分隔线-----------------')
print(f"今天的天气是{weather}")
print(f"今天的温度是{temperature}")
print('--------------------------------------------------')

结果:

---------------------华丽的分隔线-----------------
今天的天气是晴天
今天的温度是30摄氏度
------------------------------------------------

下标和切片

下标

定义字符串name = ‘python’。对于其在内存中的理解,可以参考下图
在这里插入图片描述
如果想取出部分字符,就可以通过下标的方式来实现

注意:下标从 0 开始

name = 'python'

print(name[0])
print(name[3])
print(name[-1])
运行结果:
p
h
n

切片

切片是指对操作的对象截取其中一部分的操作。

切片的语法:
[起始:结束:步长]
注意:选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),步长表示选取间隔。

例:

name = 'python'
print(name[0:3]) # 取 下标0~2 的字符

运行结果:
pyt
name = 'python'
print(name[0:5]) # 取 下标为0~4 的字符

运行结果: 
pytho
name = 'python'
print(name[3:5]) # 取 下标为3、4 的字符

运行结果: 
ho
name = 'python'
print(name[2:]) # 取 下标为2开始到最后的字符

运行结果:
thon 
name = 'python'
print(name[1:-1]) # 取下标为1开始到最后第2个之间的字符

运行结果: 
ytho

带有步进参数的用法示例

>>> a = "abcdef"
>>> a[:3]
'abc'
>>> a[::2]
'ace'
>>> a[5:1:2] 
''
>>> a[1:5:2]
'bd'
>>> a[::-2]
'fdb' 
>>> a[5:1:-2]
'fd'

想一想:
给定一个字符串aStr, 请反转字符串

索引是通过下标取某一个元素
切片是通过下标去某一段元素

用法汇总

s = 'Hello World!'
print(s[4])
print(s[:]) # 取出所有元素(没有起始位和结束位之分),默认步长为1
print(s[1:]) # 从下标为1开始,取出 后面所有的元素(没有结束位)
print(s[:5])  # 从起始位置开始,取到 下标为5的前一个元素(不包括结束位本身)
print(s[:-1]) # 从起始位置开始,取到 倒数第一个元素(不包括结束位本身)
print(s[-4:-1]) # 从倒数第4个元素开始,取到 倒数第1个元素(不包括结束位本身)
print(s[1:5:2]) # 从下标为1开始,取到下标为5的前一个元素,步长为2(不包括结束位本身)

# python 字符串快速逆置,上面思考题的答案
print(s[::-1])  # 从后向前,按步长为1进行取值

字符串常见操作

以下是字符串得的常见操作:

名称说明示例结果
find在my_word中查找字符串,如果在返回索引值,否则返回-1
my_word.find(str,start,end )
str为查找的值,start为开始,end为结束,start和end可省略
my_word= "hello,python"
my_word.find(“python”,0,20)
6
rfind类似于 find()函数,不过是从右边开始查找my_word= "hello,python"
my_word.rfind(“python”)
6
index跟find()方法一样,但是查找不到会报异常my_word= "hello,python"
my_word.index(“python”)
6
rindex类似于 index(),不过是从右边开始my_word= "hello,python"
my_word.rindex(“python”)
6
count查找某个字符串在my_word中出现的次数my_word= "hello,python"
my_word.count(“hello”)
2
replace把my_word中的old替换成new,替换不超过count次
my_word.replace(old, new, count)
my_word= "hello,python"
my_word.replace(“hello”, “你好”,1)
‘你好,python
hello,world!’
split以str为分隔符切片my_word,第二个参数表示分隔次数
my_word.split(str, 2)
my_word= “p,y,t,h,o,n"
my_word.split(”,", 2)
[‘p’, ‘y’, ‘t,h,o,n’]
capitalize将字符串的第一个字符大写my_word= "hello,python"
my_word.capitalize()
‘Hello,python’
title把字符串的每个单词首字母大写my_word= "hello,python"
my_word.title()
‘Hello,Python’
startswith检查字符串是否以 hello 开头, 是返回 True,否则返回 Falsemy_word.startswith(“hello”)True
endswith检查字符串是否以world!结束,是返回True,否则返回 Falsemy_word.startswith(“world!”)True
lower转换 my_word 中的大写字母为小写my_word= "HELLO"
my_word.lower()
‘hello’
upper转换 my_word 中的小写字母为大写my_word= "python"
my_word.upper()
'PYTHON
ljust返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串my_word= "hello"
my_word.ljust(10)
'hello ’
rjust返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串my_word= "hello"
my_word.rjust(10)
’ hello’
center返回一个原字符串居中,并使用空格填充至长度 width 的新字符串my_word= "hello,python"
my_word.center(width)
’ hello ’
lstrip删除 my_word左边的空白字符my_word= " python"
my_word.lstrip()
‘python’
rstrip删除 my_word字符串末尾的空白字符my_word = "python "
my_word.rstrip()
‘python’
strip删除my_word字符串两端的空白字符my_word= " python "
my_word.strip()
‘python’
partition把my_word以str分割成三部分,str前,str和str后my_word= “hello,python"
my_word.partition(”,")
(‘hello’, ‘,’, ‘python’)
rpartition类似于 partition()函数,不过是从右边开始my_word= "hello,python"
my_word.rpartition(str)
(‘hello’, ‘,’, ‘python’)
splitlines按照行分隔,返回一个包含各行作为元素的列表my_word= "hello\npython"
my_word.splitlines()
[‘hello’, ‘python’]
isalpha如果 my_word所有字符都是字母 则返回 True,否则返回 Falsemy_word= "python"
my_word.isalpha()
True
isdigit如果 my_word只包含数字则返回True,否则返回 Falsemy_word= "123"
my_word.isdigit()
True
isalnum如果 my_word所有字符都是字母或数字则返回 True,否则返回 Falsemy_word= "123python"
my_word.isalnum()
True
isspace如果 my_word 中只包含空格,则返回 True,否则返回 Falsemy_word= " "
my_word.isspace()
True
joinmy_word.join(str)
如果str位数大于2个,则在str每两位中插入my_word
my_word= " "
my_word.join(“python”)
‘p y t h o n’
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值