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’。对于其在内存中的理解,可以参考下图
Python基础教程——2.3 python字符串_第1张图片
如果想取出部分字符,就可以通过下标的方式来实现

注意:下标从 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,否则返回 False my_word.startswith(“hello”) True
endswith 检查字符串是否以world!结束,是返回True,否则返回 False my_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,否则返回 False my_word= "python"
my_word.isalpha()
True
isdigit 如果 my_word只包含数字则返回True,否则返回 False my_word= "123"
my_word.isdigit()
True
isalnum 如果 my_word所有字符都是字母或数字则返回 True,否则返回 False my_word= "123python"
my_word.isalnum()
True
isspace 如果 my_word 中只包含空格,则返回 True,否则返回 False my_word= " "
my_word.isspace()
True
join my_word.join(str)
如果str位数大于2个,则在str每两位中插入my_word
my_word= " "
my_word.join(“python”)
‘p y t h o n’

你可能感兴趣的:(python基础教程,python,字符串,编程语言)