Python基础-8-字符串

一、字符串定义

字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可。

例子1:使用单引号或双引号定义字符串变量

str1 = 'abcdefg'
str2 = "hello world"

print(type(str1))  # <class 'str'>
print(type(str2))  # <class 'str'>

例子2:使用3个引号定义字符串变量

# 使用单引号
name1 = '''我是Python之家!'''
print(name1)
print(type(name1))


# 使用双引号
name2 = """I am PythonHome!"""
print(name2)
print(type(name2))

注意:三引号形式的字符串支持换行操作

单引号在字符串定义中必须成对出现,而且Python解析器在解析代码时,会自动认为第一个单引号和最近的一个单引号是一对!

如果一定要在单引号中再放入一个单引号,必须使用==反斜杠==进行转义。

str1 = 'I'am PythonHome'

使用双引号情况
str2 = "I'm PythonHome"
注:在Python中,如果存在多个引号,建议
        ① 单引号放在双引号中
        ② 双引号放在单引号中。

二、字符串输入

Python代码中,我们可以使用input()方法来接收用户的输入信息。记住:在Python中,input()方法返回的结果是一个字符串类型的数据。

name = input('请输入您的姓名:')
age = input('请输入您的年龄:')
address = input('请输入您的住址:')

print(name, age, address)

    ① input()可以阻断当前正在执行的代码,让系统处于等待状态,直到用户输入完成

    ② input()方法接收到的所有数据,返回的数据类型都是字符串

三、字符串的输出

1. 普通输出

print(变量名称)
print(变量名称1, 变量名称2, 变量名称3)

2. 格式化输出

百分号(Python2和Python3)

name = input('请输入您的姓名:')
age = int(input('请输入您的年龄:'))
address = input('请输入您的住址:')

print('我的名字是%s,今年%d岁了,家里住在%s...' % (name, age, address))

format方法(Python3)

name = input('请输入您的姓名:')
age = input('请输入您的年龄:')
address = input('请输入您的住址:')

print('我的名字是{},今年{}岁了,家里住在{}...'.format(name, age, address))

f形式(Python3), 推荐使用

name = input('请输入您的姓名:')
age = input('请输入您的年龄:')
address = input('请输入您的住址:')

print(f'我的名字是{name},今年{age}岁了,家里住在{address}...')

四、字符串在计算机底层的存储形式

在计算机中,Python中的字符串属于序列结构。所以其底层存储占用一段连续的内存空间。

str1 = ‘python’

结构原理图:

Python基础-8-字符串

索引的最大值 = len(字符串) – 1

6个字符,则索引下标的最大值为6-1 =5

注意:索引下标从0开始。

 

五、什么是字符串切片

所谓的切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

字符串切片基本语法

顾头不顾尾:包括开头,不包括结尾

# 序列名称[开始位置下标:结束位置下标:步长(步阶)]

numstr = '0123456789'
numstr[0:3:1]  # 012 => range方法非常类似,步长:每次前进1步
numstr[0:3:2]  # 02 => 每次前进2步
# 步长可以为负数,正数代表从左向右截取,负数代表从右向左截取

① 不包含结束位置下标对应的数据, 正负整数均可;

② 步长是选取间隔,正负整数均可,正数从左向右,负数从右向左。默认步长为1。

举个栗子:

numstr = '0123456789'

如果想对numstr字符串进行切片,如下图所示:

 Python基础-8-字符串

记口诀:切片其实很简单,只顾头来尾不管,步长为正正向移,步长为负则逆向移

六、字符串切片例子

案例1:

numstr = '0123456789'
# 1、从2到5开始切片,步长为1
print(numstr[2:5:1])
print(numstr[2:5])
# 2、只有结尾的字符串切片:代表从索引为0开始,截取到索引为5的位置(不包含索引为5的数据)
print(numstr[:5])
# 3、只有开头的字符串切片:代表从起始位置开始,已知截取到字符串的结尾
print(numstr[1:])
# 4、获取或拷贝整个字符串
print(numstr[:])
# 5、调整步阶:类似求偶数
print(numstr[::2])
# 6、把步阶设置为负整数:类似字符串翻转
print(numstr[::-1])
# 7、起始位置与结束位置都是负数
print(numstr[-4:-1])
# 8、结束字符为负数,如截取012345678
print(numstr[:-1])

七、字符串中的查找方法

所谓字符串查找方法即是查找子串在字符串中的位置或出现的次数。

基本语法:

字符串.find(要查找的字符或者子串)

编号

函数

作用

1

find()

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。

2

index()

检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。

find()方法

作用:检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。

# 定义一个字符串
str1 = 'hello world hello linux hello python'
# 查找linux子串是否出现在字符串中
print(str1.find('linux'))
# 在str1中查找不存在的子串
print(str1.find('and'))

案例:使用input方法输入任意一个文件名称,求点号的索引下标

filename = input('请输入您要上传文件的名称:')
# 获取点号的索引下标
index = filename.find('.')
print(index)

# 求文件名称
print(filename[:index])

# 求文件后缀
print(filename[index:])

index()方法

index()方法其功能与find()方法完全一致,唯一的区别在于当要查找的子串没有出现在字符串中时,find()方法返回-1,而index()方法则直接报错。

str1 = 'apple, banana, orange'
# 判断apple是否出现在字符串str1中
print(str1.index('apple'))
print(str1.index('pineapple'))

八、字符串的修改方法

所谓修改字符串,指的就是通过函数(方法)的形式修改字符串中的数据。

编号

函数

作用

1

replace()

返回替换后的字符串

2

split()

返回切割后的列表序列

3

title()

所有单词首字母大写

4

upper()与lower()

返回全部大写或小写的字符串

replace()方法

基本语法:

字符串.replace(要替换的内容, 替换后的内容, 替换的次数-可以省略)

案例:编写一个字符串,然后把字符串中的linux替换为python

str1 = 'hello linux and hello linux'
# 把字符串中所有linux字符替换为python
print(str1.replace('linux''python'))
# 把字符串中的第一个linux进行替换为python
print(str1.replace('linux''python', 1))
# 把and字符串替换为&&
print(str1.replace('and''&&'))

目前在工作中,replace主要用于实现关键字替换或过滤功能。北京 ==> BJ,论坛关键字过滤

split()方法

作用:对字符串进行切割操作,返回一个list()列表类型的数据

str1 = 'apple-banana-orange'
print(str1.split('-'))

 join()方法

作用:和split()方法正好相反,其主要功能是把序列拼接为字符串

字符串.join(数据序列)

案例:把水果列表[‘apple’, ‘banana’, ‘orange’]拼接成’apple-banana-orange’

list1 = ['apple''banana''orange']
print('-'.join(list1))

九、字符串的判断方法

所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。

编号

函数

作用

1

isalpha()

检查字符串是否所有字符都是字母 则返回 True,否则返回 False

2

isdigit()

检查字符串是否是否所有字符都是数字则返回 True,否则返回 False

isalpha()

作用:如果 mystr 所有字符都是字母 则返回 True,否则返回 False

mystr.isalpha()

isdigit()

如果 mystr 所有字符都是字母或数字则返回 True,否则返回 False

mystr.isdigit()


原文始发于微信公众号(Python之家):Python基础-8-字符串

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/198539.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!