字符串介绍

一. 认识字符串

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

a = 'hello world'
b = "abcdefg"
print(type(a))
print(type(b))

注意:控制台显示结果为<class 'str'>, 即数据类型为str(字符串)。

1.1 字符串特征

  • 一对引号字符串

name1 = 'Tom'
name2 = "Rose"
  • 三引号字符串

name3 = ''' Tom '''
name4 = """ Rose """
a = ''' i am Tom, nice to meet you! '''
​
b = """ i am Rose, nice to meet you! """

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

二.字符串输出

1.格式化操作符

    name = '小李'position = '讲师'address = '北京市'
​print('--------------------------------------------------')print("姓名:%s" % name)print("职位:%s" % position)print("公司地址:%s" % address)print('--------------------------------------------------')

结果:

    --------------------------------------------------姓名: 小李职位: 讲师公司地址: 北京市--------------------------------------------------

2.f-strings

f-strings 提供一种简洁易读的方式, 可以在字符串中包含 Python 表达式. f-strings 以字母 'f' 或 'F' 为前缀, 格式化字符串使用一对单引号、双引号、三单引号、三双引号. 格式化字符串中

f-strings 的基本结构是这样的:

name = '小李'
age = 18
sex = '男'
msg1 = F'姓名:{name},性别:{age},年龄:{sex}'  # 大写字母也可以
msg = f'姓名:{name},性别:{age},年龄:{sex}'   # 建议小写
print(msg)

输出的结果为:

姓名:小李,性别:18,年龄:男

f-strings 就是在字符串的引号前面加上一个字母 f。字母大小写都可以,但是推荐使用小写。{} 中除了可以使用变量外,还可以放入函数:

def func(a,b):return a + b
msg = f"运行结果:{func(1,2)}"
print(msg)

输出的结果为:

运行结果:3

甚至可以在 {} 中放入 input 函数,让用户输入:

print(f"姓名:{input('请输入姓名:')} 年龄:{input('请输入年龄:')} 性别:{input('请输入性别:')}")

输出的结果是:

请输入姓名:alex
请输入年龄:18
请输入性别:男
姓名:alex 年龄:18 性别:男

除了字符串,{} 中也可以放入列表和字典:

lst = [1, 2, 32, 34, 45, 5]
msg = f"运行结果:{lst[0:3]}"
print(msg)dic = {"key": 1, "key1": 22}
msg = f"运行结果:{dic['key1']}"
print(msg)

输出的结果为:

运行结果:[1, 2, 32]
运行结果:22

f-string 可以写成多行的形式,但依然打印成一行:

msg = f"窗前明月{'光'}," \f"玻璃好上{'霜'}。" \f"要不及时{'擦'}," \f"一会就得{'脏'}。"
print(msg)

输出的结果为:

窗前明月光,玻璃好上霜。要不及时擦,一会就得脏。

要想打印多行字符串,还是要使用三对引号:

msg = f"""
窗前明月{'光'},
玻璃好上{'霜'}.
要不及时{'擦'},
一会就得{'脏'}.
"""
print(msg)

通过使用三元运算,配合 f-strings,我们可以进一步节省代码:

a = 10
b = 20
msg = f"{a if a < b else b}"
print(msg)

同时使用两个括号表示一个可以打印的大括号:

msg = f"{{'alex': 'wusir'}}"
print(msg)

输出的结果为:

{'alex': 'wusir'}

字符串输入;

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

demo:

    userName = input('请输入用户名:')print("用户名为:%s" % userName)
​password = input('请输入密码:')print("密码为:%s" % password)

结果:(根据输入的不同结果也不同)

    请输入用户名:xiaoli用户名为: 110请输入密码:123456密码为: 123456

下标和切片

1. 下标索引

所谓“下标”,就是编号,就好比超市中的存储柜的编号,通过这个编号就能找到相应的存储空间

字符串中"下标"的使用

列表与元组支持下标索引好理解,字符串实际上就是字符的数组,所以也支持下标索引。

如果有字符串:name = 'abcdef',在内存中的实际存储如下:

如果想取出部分字符,那么可以通过下标的方法,(注意python中下标从 0 开始)

    name = 'abcdef'
​print(name[0])print(name[1])print(name[2])

运行结果:

a
b
c

2. 切片

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

切片的语法:[起始:结束:步长]

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

我们以字符串为例讲解。

如果取出一部分,则可以在中括号[]中,使用:

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

运行结果:

 name = 'abcdef'
​print(name[0:5]) # 取 下标为0~4 的字符

运行结果:

 name = 'abcdef'
​print(name[3:5]) # 取 下标为3、4 的字符

运行结果:

    name = 'abcdef'
​print(name[2:]) # 取 下标为2开始到最后的字符

运行结果:

    name = 'abcdef'
​print(name[1:-1]) # 取 下标为1开始 到 最后第2个  之间的字符
​

运行结果:

想一想

  • (面试题)给定一个字符串aStr, 请反转字符串

# 索引是通过下标取某个元素
# 切片是通过下标去某一段元素
​
s = 'Hello World!'
​
print(s[4])
​
print(s)
​
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进行取值

字符串常见操作

如有字符串mystr = 'hello world itcast and itcastcpp',以下是常见的操作

<1>find

检测 str 是否包含在 mystr中,如果是返回开始的索引值,否则返回-1

  1. 语法

字符串序列.find(子串, 开始位置下标, 结束位置下标)
  1. 示例

mystr.find(str, start=0, end=len(mystr))

<2>index

跟find()方法一样,只不过如果str不在 mystr中会报一个异常.

  1. 语法

字符串序列.index(子串, 开始位置下标, 结束位置下标)
  1. 示例

mystr.index(str, start=0, end=len(mystr))

<3>count

返回 str在start和end之间 在 mystr里面出现的次数

  1. 语法

字符串序列.count(子串, 开始位置下标, 结束位置下标)
  1. 示例

mystr.count(str, start=0, end=len(mystr))

<4>replace

把 mystr 中的 str1 替换成 str2,如果 count 指定,则替换不超过 count 次.

  1. 语法

字符串序列.replace(旧子串, 新子串, 替换次数)
  1. 示例

mystr.replace(str1, str2,  mystr.count(str1))

<5>split

以 str 为分隔符切片 mystr,如果 maxsplit有指定值,则仅分隔 maxsplit 个子字符串

  1. 语法

字符串序列.split(分割字符, num)
  1. 示例

mystr.split(str=" ", 2)

<6>capitalize

把字符串的第一个字符大写

mystr.capitalize()

<7>title

把字符串的每个单词首字母大写

>>> a = "hello itcast"
>>> a.title()
'Hello Itcast'

<8>startswith

检查字符串是否是以 hello 开头, 是则返回 True,否则返回 False

  1. 语法

字符串序列.startswith(子串, 开始位置下标, 结束位置下标)

2.示例

mystr.startswith(hello)

<9>endswith

检查字符串是否以obj结束,如果是返回True,否则返回 False.

mystr.endswith(obj)

<10>lower

转换 mystr 中所有大写字符为小写

mystr.lower()

<11>upper

转换 mystr 中的小写字母为大写

mystr.upper()

<12>ljust

返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串

mystr.ljust(width) 

<13>rjust

返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串

mystr.rjust(width)

<14>center

返回一个原字符串居中,并使用空格填充至长度 width 的新字符串

mystr.center(width)

<15>lstrip

删除 mystr 左边的空白字符

mystr.lstrip()

<16>rstrip

删除 mystr 字符串末尾的空白字符

mystr.rstrip()

<17>strip

删除mystr字符串两端的空白字符

>>> a = "\n\t itcast \t\n"
>>> a.strip()
'itcast'

<18>rfind

类似于 find()函数,不过是从右边开始查找.

mystr.rfind(str, start=0,end=len(mystr) )

<19>rindex

类似于 index(),不过是从右边开始.

mystr.rindex( str, start=0,end=len(mystr))

<20>partition

把mystr以str分割成三部分,str前,str和str后

mystr.partition(str)

<21>rpartition

类似于 partition()函数,不过是从右边开始.

mystr.rpartition(str)

<22>splitlines

按照行分隔,返回一个包含各行作为元素的列表

mystr.splitlines()  

<23>isalpha

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

mystr.isalpha()  

<24>isdigit

如果 mystr 只包含数字则返回 True 否则返回 False.

mystr.isdigit() 

<25>isalnum

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

mystr.isalnum()  

<26>isspace

如果 mystr 中只包含空格,则返回 True,否则返回 False.

mystr.isspace()   

<27>join

mystr 中每个元素后面插入str,构造出一个新的字符串

  1. 语法

字符或子串.join(多字符串组成的序列)
  1. 示例

mystr.join(str)

#想一想

  • (面试题)给定一个字符串aStr,返回使用空格或者'\t'分割后的倒数第二个子串

Python基础知识__字符串相关推荐

  1. Python基础知识:字符串

    1.Python中大写字母命名的变量,默认为常量,不可修改:列如:MYSQL_CONNECTION = '192.168.1.1' 2.字符串换行输入格式:换行用\隔开,两行分别用引号,制表符\t,换 ...

  2. Python基础知识详解 从入门到精通(八)魔法方法

    目录 Python基础知识详解 从入门到精通(八)魔法方法 什么是魔法方法 基础魔法方法(较为常用) 比较操作符 算数运算符 反运算(类似于运算方法) 增量赋值运算 一元操作符 类型转换 上下文管理( ...

  3. Python基础知识笔记

    文章目录 Python基础知识 教程:https://www.liaoxuefeng.com/wiki/1016959663602400 内置函数:https://docs.python.org/3/ ...

  4. Python基础知识总结

    1. Python基础知识 1.1  Python历史 1.1.1 Python起源 Python的作者,Guido von Rossum,荷兰人.1982年,Guido从阿姆斯特丹大学获得了数学和计 ...

  5. Python复习系列:Python基础知识(三)

    Python基础知识(三) Python基础知识(三) (一)循环结构和选择结构 1. 条件表达式 2. 选择结构 2.1 单分支选择结构 2.2 双分支选择结构 2.3 多分支选择结构 2.4 选择 ...

  6. TensorFlow实战之Python基础知识笔记

    Python基础知识目录 一.初始Python 1. 解释和编译 2. Python语言特点 3. Python基础语法 二.基础知识 1. 数据类型 2. 常量.变量 3. 运算符 4. 条件语句 ...

  7. 2.Python 基础知识

    文章目录 Python 基础知识 知识点一 : 注释 1.单行注释 2.多行注释 知识点二 : 变量 知识点三 : 数据类型 1.数字类型 1.1 整型 1.2 浮点型 1.3 复数类型 2.字符串 ...

  8. python基础知识资料-Python基础知识汇总

    原标题:Python基础知识汇总 1.Anaconda的安装 百度Anaconda的官网,下载左边的Python3.X版本 然后是设置路径,最后给出Jupyter notebook.具体参考: 猴子: ...

  9. python基础知识资料-Python基础知识梳理 - 第02部分

    本文是Python基础知识的第二篇, 主要是对内置对象类型的介绍, 涉及的类型如下表. 数字类型 在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类, 如整数和浮点数, 复数等 ...

最新文章

  1. sklearn pipeline_我的sklearn学习经验
  2. 数据类型的sizeof
  3. java自定义字段_自定义字段的设计与实现(Java实用版)
  4. 表单提交中的input、button、submit的区别
  5. 新华智云基于MaxCompute建设媒体大数据开放平台
  6. arcmap中使用python_ArcMap - 使用python更新列中的值
  7. win10固态硬盘分区 整数_固态硬盘怎么重装win10系统?Win10固态硬盘重装系统教程...
  8. 剑指offer刷题专栏C++
  9. matlab排序函数sort的使用方法
  10. 7个良心到难以置信的自媒体免费网站推荐
  11. 【论文】Deep Pyramidal Residual Networks(译)
  12. 分享量化交易接口之网格交易的选股策略
  13. winpe 能否修复服务器系统,教你如何使用winpe来修复系统
  14. 全球知名的人工智能研究院(实验室)
  15. 【中级软考】cache是什么?(高速缓冲存储器)
  16. 据统计:程序员平均寿命仅为37.9岁!
  17. 了解黑客常用的工具,我也能反黑了
  18. java老鼠走迷宫算法_老鼠走迷宫java算法
  19. 快递单号匹配正则集,来自淘宝开放平台
  20. const int *p 和 int *const p

热门文章

  1. 使用@Order调整配置类加载顺序
  2. Linux使用RSA实现免密登录(原理)
  3. linux初始化内存盘卡住,Linux系统内存磁盘初始化技术详细解析
  4. python email模块详解_python模块之email: 电子邮件编码解码 (一、解码邮件)
  5. mysql dbo_mysql-双重分组
  6. 机器学习之凸优化原理推导及相关知识总结
  7. 勾股定理python思路_趣叮咚编程数学揭秘:为什么勾股定理a+b=c?
  8. virtual析构函数的作用?
  9. java 线程池 wait,Java 多线程 之 wait等待 线程实例
  10. javascript php 性能,浅谈页面装载js及性能分析方法_javascript技巧