大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱编程、热爱分享! 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~
我的博客地址为:【AI 菌】的博客
我的Github项目地址是:【AI 菌】的Github

-> 前往【人生苦短,我学 Python】总目录 <-

前言:

本专栏在保证内容完整性的基础上,力求简洁,旨在让初学者更快地入门Python。这个Python学习专栏我打算分三个阶段:基础知识、进阶知识、实战训练。这将是一套完整、高效、循序渐进的Python系列讲解,您亦可以当做Python学习的入门教程。


文章目录

  • 一、字符串
  • 二、索引与切片
  • 三、字符串更新
  • 四、字符串运算符
  • 五、字符串格式化
  • 六、常用的字符串内置函数
    • 6.1 查找子串find
    • 6.2 大小写lower与upper
    • 6.3 替换replace
    • 6.4 合并join
    • 6.5 拆分split
    • 6.6 删除空白strip
    • 6.7 居中center
    • 6.8 转换translate

一、字符串

从之前的文章:Python标准数据类型,我们已经知道:字符串是 Python 中最常用的数据类型,它由一系列字符构成,用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

创建字符串很简单,如下所示:

var1 = "Hello World!"
var2 = "Hello Python!"

二、索引与切片

在Python中,要访问字符串中的某个字符或者子字符串,就需要用到索引或者切片,索引值以都是从0 开始的。

(1) 索引

当我们需要访问字符串中的某个字符时,就可以使用索引。我们可以使用[ ]来获取字符串中某个字符的值。有两种方式:

  • 从前往后索引:索引值以0开始,以字符串长度为结尾。
  • 从后往前索引:索引值以-1开始

下面举个例子,两种方法分别输出字符串“Python”的最后一个字符:

str = "Python"
# 方法1:从前往后索引
print(str[5])
# 方法1:从后往前索引
print(str[-1])

输出结果:

(2) 切片

当我们需要访问字符串中的某个子字符串时,就可以使用切片。我们可以使用[ ]来获取字符串中某个片段(子字符串)的值。有两种方式:

  • [start:end],取索引值从start到end的子字符串片段,默认步长为1。
  • [start:end:step],取索引值从start到end的子字符串片段,步长为step。

两种取字符串的方式如下所示:

str = "123456"
#  [start:end]
print(str[0 : 6])
#  [start:end:step]
print(str[0 : 6 : 2])

程序输出:

可以看出,通过[start:end:step]方式获取子字符串,会以步长step间隔取值形成新的子字符串。

除此之外,我们还需要掌握一些默认的切分语法:

比如当我们需要取字符串前5个字符时,就可以直接省略首索引strat,如下所示:

str = "123456"
print(str[:5])

同样,当我们只取最后5个字符时,可以按照如下写法:

str = "123456"
print(str[-5:])

当我们要取整个字符时,可以直接省去首索引和尾索引,按照如下写法:

str = "123456"
print(str[:])

三、字符串更新

字符串是不能通过元素赋值、切片赋值更新的,比如下面这样:

website = "http://www.python.org"
website[-3:] = "com"

想通过切片赋值的方式,将原字符串website更新为“http://www.python.com”是不被允许的。运行报错如下:

那是不是就不能实现以上的功能呢?其实我们可以换种思路,截取字符串的一部分并与其他字段拼接就能实现了,如下所示:

website = "http://www.python.org"
website = website[:-3] + "com"
print(website)

更新后的输出:

四、字符串运算符

在前面的教程中,我们学习了 + 和 * 两种操作符,下面我们继续来学习一下字符串还有哪些常用的运算符。

操作符 描述
+ 字符串连接
* 字符串复制
[] 通过索引获取字符串中字符
[:] 截取字符串中的一部分,遵循左闭右开原则,比如 str[0:6] 是不包含第 6 个字符的。
in 如果字符串中包含给定的字符返回 True,否则返回 False
not in 如果字符串中不包含给定的字符返回 True,否则返回 False

下面我们举例来演示一下以上运算符的用法:

str1 = "Hello "
str2 = "Python "
print("str1 + str2 =", str1 + str2)
print("str1 * 2 =", str1 * 2)
print("str1[0] =", str1[0])
print("str1[:3] =", str1[:3])if 'P' in str2:print("P在字符串str2中")
else:print("P不在字符串str2中")if 'P' not in str1:print("P不在字符串str1中")
else:print("P在字符串str1中")

以上例子输出结果为:

五、字符串格式化

Python 支持格式化字符串的输出 ,在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。下面举一个简单的例子:

print("现在是 %s 年 %s 月" % ('2021', '1'))

结果输出:

在Python中,还有很多字符串格式化符号:

除此之外,有时还会用到一些格式化操作符辅助指令

自Python2.6 开始,新增了一种格式化字符串的函数str.format(),具体用法我们后面再讲。

六、常用的字符串内置函数

字符串的内置函数太多了,这里只介绍一些最有用的。完整的字符串函数清单请参阅:https://docs.python.org/3/library/string.html

6.1 查找子串find

函数 find 在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回 -1 。示例如下:

6.2 大小写lower与upper

函数 lower 返回字符串的小写版本,函数 upper 返回字符串的小写版本。示例如下:

6.3 替换replace

函数 replace 将指定子串都替换为另一个字符串,并返回替换后的结果。示例如下:

6.4 合并join

函数 join 用于合并字符串序列的元素。示例如下:

注:这里使用\\,是因为前面的一个\是转义字符不显示。

6.5 拆分split

函数 split 是一个非常重要的字符串方法,其作用与 join 相反,用于将字符串拆分为序列。示例如下:

6.6 删除空白strip

函数 strip 将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。

6.7 居中center

函数 center 通过在两边添加填充字符(默认为空格)让字符串居中。示例如下:

6.8 转换translate

函数 translate 与 replace 一样替换字符串的特定部分,但不同的是它只能进行单字符替换。这个函数的优势在于能够同时替换多个字符,因此效率比 replace 高。比如下面例子中,同时替换两个字符"P"和“H”

-> 回到【人生苦短,我学 Python】总目录 <-

【人生苦短,我学 Python】基础篇——字符串(Day7)相关推荐

  1. 字符串从右截取_跟运维组学Python基础day04(字符串str的索引和切片)

    内容回顾 跟运维组学Python基础 day03 格式化输出 %s name = input('Pleases input your name: ') # Zanaoprint('My name is ...

  2. 带你学python基础:字符串

    还记得学习 C 语言的时候吗,是不是每天都在控制台程序上玩耍,那时发现编程太没意思了,就只能玩这些东西吗? 后来,发现其实,外面的世界还是非常的广阔的,但是,今天,既然是 python 基础,所以我们 ...

  3. python删除文件夹无法访问_人生苦短 我学Python——anaconda和Jupyter notebook安装使用...

    一.人生苦短 我学Python 为什么学习Python? 1.应用范围广 很多网站是用Python开发的,比如豆瓣,还有YouTube等等. 2.效率高,和其他编程语言对比,可以用少得多的代码写出相同 ...

  4. 杨洋python课程提高篇_杨洋老师《全民一起玩Python 基础篇+提高篇》

    全民一起玩Python 基础篇+提高篇 适用人群: 想用轻松系统的方式,从零开始真正理解掌握Python.进而学习办公.网抓.数据.AI.网站等技术的各界人士 课程概述: 制作精细.自带吐槽,每节课程 ...

  5. 杨洋python课程提高篇_杨洋老师:全民一起玩Python 基础篇+提高篇,老师幽默严谨不枯燥的学习编程...

    课程介绍 本套课程出自杨洋老师的全民一起玩Python 基础篇+提高篇官网售价299元,程保持了杨洋博士老师幽默严谨不枯燥的学习编程,清晰全面的授课风格,配有丰富的教学演示和插图.动画,是初学者学习P ...

  6. 面试题之第一部分(Python基础篇) 80题

    第一部分(python基础篇)80题 为什么学习Python?==*== # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域,同时它相 ...

  7. python包括哪些部分_第一部分 Python基础篇

    第⼀一部分 Python基础篇 1. 为什什么学习Python? 朋友推荐,比较简单易学,生态圈比较强大 发展趋势:人工智能.数据分析 2. 通过什什么途径学习的Python? 廖雪峰.网络博客.相关 ...

  8. 经典Python面试题之Python基础篇

    Python基础篇 1. 为什么学习Python? 2. 通过什么途径学习的Python? 3. Python和Java.PHP.C.C#.C++等其他语言的对比? 4. 简述解释型和编译型编程语言? ...

  9. Python基础篇:你好,世界!

    Python基础篇:你好,世界! 开了一段时间的博客了,可能很多人都对Python基础不掌握或者掌握不牢固,所以我会分别出算法篇和基础篇的教程来教大家一步一步走向程序员的水平 接着我们看看下面这行代码 ...

  10. Python基础篇(七)

    Python基础篇(七) 前言 一.元组 1.1 元组的定义 1.2 元组的常见操作 二.字典 2.1 字典的语法 2.2 字典常见操作 2.3 字典的循环遍历 三.任务清单 3.1 基础练习 3.2 ...

最新文章

  1. java显示位图_java – 大图标位图在通知中显示为白色方块?
  2. luogu P3306 [SDOI2013] 随机数生成器(BSGS,数列求通项,毒瘤特判)
  3. 国产项目管理软件/敏捷开发工具
  4. ​causal-learn:基于Python的因果发现算法平台
  5. linux wine 中文乱码,Linux下使用Wine出现中文乱码的解决方法
  6. apache开源项目--ZooKeeper
  7. 为恶意文件“画像” 瀚思科技基于深度学习技术快速锁定未知威胁
  8. ios 主题切换 思路_iOS 使用 NSObject 的分类实现快速切换主题
  9. Java面试技巧—如何自我介绍
  10. Oracle 19c 新特性:ADG的自动DML重定向增强读写分离
  11. welearn随行课堂刷题教程
  12. Go语言核心之美 3.5-JSON
  13. 在虚拟机中安装centos6操作系统,DHCP下克隆,再使用CRT软件进行远程登录
  14. RING BUFFER的常规用法
  15. 航芯技术分享 | BMS专题之BMS基础功能模块概述
  16. Linux入门居然只要会看就行!!!
  17. 【云和恩墨大讲堂】尹涛 - 由DRM引起的ORA-00481错误
  18. 算法模型评价详解:confusion matrix Accuracy Precision Recall F1 调和平均 加权F1 Micro-F1 Macro-F1 PRC ROC AUC
  19. Qt窗口组件实现动态背景功能
  20. java怎么连接sql_java怎么连接SQL Server

热门文章

  1. 华为Vo5G技术RATFB
  2. 机器学习中的高斯分布
  3. 如何在手机浏览器使用调试工具
  4. 一个被挂木马的政府网站
  5. MATLAB 图像处理于数字化(一)
  6. matlab分割字符串提取文件名
  7. 一次性讲清楚 Handler 可能导致的内存泄漏和解决办法 | 开发者说·DTalk
  8. Excel中如何使用AVERAGEIF函数
  9. 全面讲解Flink中CheckPoint机制和Exactly Once / At Least Once应用
  10. 图书管理系统(包含找回密码、设置密保等) C语言