开篇

之前已经提到过,在Python中,一共有六大数据类型

本期就开始学习Python的六个标准数据类型中的字符串

什么是字符串

在Python中,字符串是用一对引号(单引号/双引号均可)包裹起来的一串字符,比如之前你见到的'Hello World !'便是一个字符串。

下面再给出几个字符串的栗子:

Python提供了type()函数用于查询某个变量的数据类型,在上图中,数据类型名字后面的英文就是该数据类型所对应的type()函数返回值,()内填写的是你要查看的变量名。

接着上面的栗子,现在我要查看一下这些变量所保存元素的数据类型(不能你说是字符串就是字符串吧,我要亲自动手验证一下,嘿嘿)

验证完毕,返回值是str,是字符串无误!

注意,一个单个的字符也是字符串:

>>> ch='u'>>> type(ch)

你可能会好奇,这里出现的函数,返回值和class是什么鬼。不要着急,后面会讲到,现在你只要会用type()来查看一个变量的数据类型就达到足够了

如何选取字符串中的某些元素(重点)

首先要说明的是,Python的下标(也称索引)是从0开始的,这和大部分编程语言是一致的。

下面这张图清晰的展示了下标与元素位置的关系:字符串'Python'的长度是6,下标的最大值是5,正好差1。

现在,将字符串'Python'存入变量s :

s='Python'

如果想要获取中的某一个字符,直接使用s[下标]即可:

注意,如果你给的下标值超出了字符串的下标最大值,则会报错,就像下面这样:

知道了如何选取字符串中的某一特定下标处的元素之后,你可能又会想:我能不能一次选取好几个元素呢?

当然可以!

Python的切片便是用来做这件事情的。

切片语法如下:

s[start:end:step]

解释一下:s是一个存储了字符串的变量名,start和end分别代表了切片的开始位置下标和结束位置下标+1,step是步长,如果不写step,那就用默认值1。(【注】Python规定,step不能为0,这一点记住就好,无需深究。)

下面的栗子可以让你更好的理解上面所说:

>>> s='Great Python'>>> s[0:3] #start=0,end=3,所以区间为[0,2]'Gre'

这里,从下标为0的位置元素开始,一直到下标为2的位置结束,由于我们没有写step,所以使用默认值1,也就是一步一步地向前走(规范化地表述是:从start开始,以1为步长,向end方向扫描)。

最终将下标区间[0,2]位置的所有元素选取出来。

一个比较好的记忆方式是:start和end组成的区间是左闭右开的。

如果我们更改了步长,又会怎样?看下面的栗子:

>>> s="Great Python">>> s[0:9:2]'GetPt'

这一次设置了步长为2,选取的下标范围是0到8。

s[0:9:2]所做的事情如下(结合上图来理解):

第一次选取下标为`0`处的元素`G`接下来走`2`步,到达下标`2` 第二次选取下标为`2`处的元素`e`接下来走`2`步,到达下标`4`第三次选取下标为`4`处的元素`t`接下来走`2`步,到达下标`6`第四次选取下标为`6`处的元素`P`接下来走`2`步,到达下标`8`第五次选取小标为`8`处的元素`t`由于已经走到了区间最右侧,所以不再继续走。

至此,选取结束,返回由G、e、t、P、t组成的字符串'GetPt' 。

相信通过以上详细的讲解,你已经学会了使用字符串中简单的切片语法。

还有一件更神奇的事情:下标可以为负数!

你可能会问:下标为负数的话不是没有对应元素了嘛?就像下面这样:

事实不是这样的!

负数索引,指的是从最后一个元素开始,往前数(也就是倒着数,比如-1代表倒数第一个)。所以下面这张图才是正确的:

继续之前的栗子(仔细看注释哦):

>>> s='Python'>>> s[-1]#选取倒数第一个元素'n'>>> s[-2]#选取倒数第二个元素'o'>>> s[-123]#不存在倒数第123个元素,所以报错Traceback (most recent call last):  File "", line 1, in     s[-123]IndexError: string index out of range

对于切片操作同理,这里给出几个栗子:

>>> s="Great Python">>> s[-3:-1]#注意区间左闭右开'ho'>>> s[-5:-1:2]#注意区间左闭右开'yh'

如果仔细观察,你会发现,上面所有的栗子中,start都是小于end的,那能不能出现start>end呢?

答案是可以!但同时需要将步长step设置为负,否则选取到的结果一定是空!

>>> s='Graet Python'>>> s[4:1]#未设置步长,采用默认值1(正),结果为空''>>> s[-1:-4]#未设置步长,采用默认值1(正),结果为空''>>> s[-1:-4:2]#步长为2(正),结果为空''>>> s[4:1:-1]#设置了步长为-1(负)'tea'>>> s[-1:-6:-2]#设置了步长为-2(负)'nhy'

更多字符串操作

定义一个字符串:

s='Hello World'

1.求字符串长度:使用len()函数

>>> s='Hello World'>>> len(s)11

2.选取全部元素

#方法1>>> s[0:len(s)]'Hello World'#方法2:`切片`特有的操作>>> s[::]'Hello World'

3.选取倒序的全部元素

#`切片`特有的操作>>> s[::-1]'dlroW olleH'

本期内容到这里就结束了,关于字符串的用法还没有讲完,剩余内容将在下期介绍。

在结束之前,简单介绍一下print()。

print()用于正如其名,用于输出结果到屏幕上。

将'Hello World!'输出到屏幕上,只需将这个字符串放进()内,运行即可:

>>> print('Hello World!')Hello World!

()内也可以放入变量:

>>> s='Hello World!'>>> print(s)Hello World!

明天的内容有些多,要做好准备哦~

大家加油!有问题留言区见。

本文首发于微信公众号:我将在南极找寻你

python求列表最大值下标_切片,丝滑的字符串 | Python基础连载(三)相关推荐

  1. python求立方尾不变_蓝桥杯:单词分析——————Python

    题目 试题 G: 单词分析 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 [问题描述] 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超 ...

  2. 列表、下标、切片及练习

    在FY-Python2301项目下创建一个名为day06的文件夹,在day06下创建一个名为01-列表的代码文件. 容器型数据类型 列表(下标.切片.for循环.列表的一系列方法:append.ins ...

  3. python求列表list平均值的方法

    python求列表list平均值的步骤 python内置了两个函数,sum()和len()方法,其中sum()可以用于求取列表的元素和,len()函数可以用于求取列表list元素的个数,由此,利用py ...

  4. python怎么复数乘方开方_运维必须掌握的 Python 宝典:值得每天复习一遍

    前言 本文旨在更好地总结 Python 基础知识,力求简明扼要,以供实战演练时能够快速查询遗忘的知识点. 学一门语言贵在坚持用它,不用就淡忘了,而记录下一篇文章也有助于日后快速回忆.全文分为两大部分, ...

  5. 11小时 python自动化测试从入门到_自动化测试实战宝典(Robot Framework+Python从小工到专家)...

    目录 第1部分 入门篇 第1章 大话测试行业 1.1 测试行业现状分析 1.2 未来发展趋势 1.3 测试工程师的核心竞争力 1.4 测试知识体系 1.5 测试发展能力图谱及推荐书单 1.6 本章总结 ...

  6. python求列表的平均值的用法_python如何求列表平均值?_后端开发

    php中post和get的区别是什么?_后端开发 php中post和get的区别是:1.post更安全并且发送的数据量更大:3.post能发送更多的数据类型,get只能发送ASCII字符:4.post ...

  7. python一维列表的定义_数据结构-Python 列表(List)

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现 一.列表常用方法 1.创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可. eg:list1= ['1', 'c ...

  8. 遗传算法求函数最大值实验_小知识:什么是遗传算法

    1 什么是遗传算法 遗传算法(GeneticAlgorithm, GA)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法. 其主要特点是 ...

  9. python求两数最大公因数_『用python求俩个数的最大公约数和最小公倍数』

    python:用递归的方法编写一个函数gys(x,y),计算两个数字的最大公约数. (提示,大的 def gys(x,y): a,b=max(x,y),min(x,y) c=a%b if c==0: ...

最新文章

  1. Java天使之恋攻略,跑跑卡丁车手游天使之恋怎么得 天使之恋获取攻略[多图]
  2. c语言综合性实验数字益智游戏排行榜,C语言综合性实验报告1.doc
  3. css rem 大屏开发_px/em/rem的区别与应用
  4. 遥感原理与应用孙家炳_2.2遥感应用模型
  5. centos6.5装mysql好难_centos 6.5装mysql5.7
  6. GitHub改为token验证后,如何提交代码?
  7. [读书笔记]一些编码中需要注意的东西
  8. workbench求解闭合状态尼龙槽环
  9. tshark过滤并保存包特定字段
  10. python 爬取历史天气
  11. PYTHON之路(九)
  12. 个人电子设计步骤整理
  13. 这些孩子对计算机游戏上瘾英语,沉迷网络游戏高中英语作文
  14. 检查php语法错误,PHP检查语法错误技巧
  15. Fedformer:Frequency Enhanced DecomposedTransformer for long-term series forecasting[还在学习中···]
  16. 团队合作开发的两种文档工具
  17. php+mysql统计7天、30天每天数据没有补0
  18. 尼尔机器人技能快捷键_尼尔机械纪元出招表及招式使用技巧 尼尔机械纪元技能怎么用...
  19. 最新小储云商城程序源码最新PJ版 去授权后门
  20. 搞不明白的PS调色技巧视频教程

热门文章

  1. AIProCon在线大会笔记之清华大学唐杰教授:人工智能的下一个十年
  2. springboot出现Requested bean is currently in creation: Is there an unresolvable circular reference?
  3. TensorFlow——[基本图像分类]fashion-mnist及mnist_reader.py运行错误[TypeError: Invalid dimensions for image data]
  4. 汇编语言——《子程序应用(数制转换)程序设计》实验报告
  5. RabbitMQ——无法连接错误[AmqpConnectException: java.net.ConnectException: Connection refused: connect]解决方案
  6. SpringBoot+AOP实现多数据源动态切换
  7. 【学习笔记】opencv的python接口 轮廓特征值 滚动条控制阈值参数
  8. 基于openfire+smack的Android、消息推送服务
  9. 一网打尽2013最常用的NoSQL数据库
  10. Android studio git 本地仓库和远程仓库节点对比