人生苦短,我选Python

引言

前文传送门

小白学 Python(1):开篇

小白学 Python(2):基础数据类型(上)

前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串。

什么是字符串?

字符串是由字符组成的一串有限序列,如: 'geekdigging' 、 "geekdigging" ,当然,符号也是可以的,如: 'https://www.geekdigging.com/' 、 "https://www.geekdigging.com/" 。

注意: '' 或者 "" 表示的是空字符串,空字符串和 null 是不一样的。

字符串外面的包裹可以是单引号,也可以是双引号,需要注意的是单引号和双引号一定是成对出现的,不可混合使用,如果你一定要混合使用的话,PyCharm 会报语法错误的,红色的波浪线你看到会倍感亲切。

示例如下:

print('www.geekdigging.com')

// 输出结果:www.geekdigging.com

print("www.geekdigging.com")

// 输出结果:www.geekdigging.com

当然,也会有混合使用的时候,如果小明说了一句话,这句话的内容中含有双引号怎么办,示例如下:

print('小明说:"吃了吗?"')

// 输出结果:小明说:"吃了吗?"

上面的示例外部使用的是单引号,如果在外面也使用双引号怎么办,会报错的啊:

不要担心, Python 肯定考虑到这一点了,因为 Python 识别程序是从左向右识别的,所以我们中间的一段内容 吃了吗? 会因为没有双引号的包裹而导致了报错。我们可以使用转义符号 \ 来告诉 Python 中间的双引号并不是代表字符串的符号,是我们想要打印的符号,示例代码如下:

print("小明说:\"吃了吗?\"")

// 输出结果:小明说:"吃了吗?"

还可以使用连续三个单引号或者双引号,它可以使得中间被包裹起来的一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符,示例如下:

print('''
这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
''')

打印结果如图:

转义

从字面意思理解转义就是转换含义,通俗来讲就是含义变了。

具体 Python 支持的转义字符如下表:

转义字符 描述
(在行尾时) 续行符
\ 反斜杠符号
' 单引号
" 双引号
\a 响铃
\b 退格(Backspace)
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy 代表的字符,例如:\o12 代表换行,其中 o 是字母,不是数字 0。
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出

\n 换行:

print('I \nlike Python!')

\t 横向制表符

print('I\tlike\tPython!')

那么随之而来的一个问题是,如果这个字符串中真的是想打印 \t ,而并不是把它当做一个横向制表符该怎么办呢?有两种解决方案,示例如下:

print("横向制表符:\\t")
// 输出结果:横向制表符:\t print(r"横向制表符:\t")
// 输出结果:横向制表符:\t
  • 第一种是在转义符号前面再加一个转义符号 \ ,负负得正。
  • 第二种是在这个字符串的外面加一个 r (大小写均可)。

常用方法

获取字符串长度:

获取字符串长度 Python 为我们提供了一个 len() 的方法,示例如下:

print(len('I like Python!'))
// 输出结果:14 print(len('I like 小明!'))
// 输出结果:10 print(len(''))
// 输出结果:0 print(len(' '))
// 输出结果:1 print(len("\n"))
// 输出结果:1
  • 中文,字母,数字,符号都是占一个长度。
  • 字符串中的空格也是占长度的。
  • 空字符串的长度为0

字符串拼接

字符串拼接可以使用符号 + ,示例如下:

a = "Hello"
b = "Python" print("a + b 输出结果:", a + " " + b)
// a + b 输出结果: Hello Python

重复输出字符串

字符串拼接可以使用符号 * ,示例如下:

print("a * 2 输出结果:", a * 2)
// a * 2 输出结果: HelloHello

通过索引获取字符串中字符

如果把字符串中的每个字符看做在排队的话,那么索引就是这个字符的位置,第一个字符的索引为 0 ,示例如下:

print("a[1] 输出结果:", a[1])
// a[1] 输出结果: e

截取字符串

在 Java 中,截取字符串给了一个方法是 substring ,而在 Python 中则直接使用 [:] 这个表达式即可,遵循左闭右开原则,示例如下:

print("a[1:4] 输出结果:", a[1:4])
// a[1:4] 输出结果: ell

包含

成员运算符 in 可以判断一个字符串种是否包含指定的字符串,并返回 true 或者 false 布尔值。示例如下:

if "H" in a:
print("H 在变量 a 中")
else:
print("H 不在变量 a 中") // H 在变量 a 中

不包含

既然有了包含那一定就会有不包含,不包含的成员运算符是 not in ,返回同样是布尔值。示例如下:

if "M" not in a:
print("M 不在变量 a 中")
else:
print("M 在变量 a 中") // M 不在变量 a 中

示例代码

本系列的所有代码小编都会放在代码管理仓库 Github 和 Gitee 上,方便大家取用。

示例代码-Github

示例代码-Gitee

小白学 Python(3):基础数据类型(下)的更多相关文章

  1. 小白学 Python(17):基础数据类型(函数)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  2. 小白学 Python(2):基础数据类型(上)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...

  3. 小白学 Python(6):基础运算符(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  4. 小白学 Python(8):基础流程控制(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  5. 小白学 Python(10):基础数据结构(列表)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  6. 小白学 Python(13):基础数据结构(字典)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  7. 小白学 Python(15):基础数据结构(集合)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. 小白学 Python(16):基础数据类型(函数)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  9. 小白学 Python(24):Excel 基础操作(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

随机推荐

  1. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试

    最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...

  2. 使用CoordinatorLayout打造各种炫酷的效果

    使用CoordinatorLayout打造各种炫酷的效果 自定义Behavior -- 仿知乎,FloatActionButton隐藏与展示 NestedScrolling 机制深入解析 一步步带你读 ...

  3. git 添加子模块 fatal: You are on a branch yet to be born

    删除与.git / modules /目录下的子模块具有相同路径的文件夹.当子模块添加子模块时,如果子模块的url不正确,则会出现此错误.

  4. React + TypeScript 实现泛型组件

    泛型类型 TypeScript 中,类型(interface, type)是可以声明成泛型的,这很常见. interface Props<T> { content: T; } 这表明 Pr ...

  5. 使用webgl(three.js)搭建3D智慧园区、3D大屏,3D楼宇,智慧灯杆三维展示,3D灯杆,web版3D,bim管理系统——第六课

    前言: 今年是建国70周年,爱国热情异常的高涨,为自己身在如此安全.蓬勃发展的国家深感自豪. 我们公司楼下为庆祝国庆,拉了这样的标语,每个人做好一件事,就组成了我们强大的祖国. 看到这句话,深有感触, ...

  6. SkyWalking系列(一):初探

    SkyWalking已经再微服务商城系列里使用了,本篇将介绍如何再Windows系统下安装并简单使用. 1.下载SkyWaling 本篇测试使用6.0版本:http://skywalking.apac ...

  7. Docker系列(二):通过Docker安装使用 Kubernetes (K8s)

    Docker社区版从17.12版本开始已经提供了对Kubernetes的支持.但是由于其安装过程依赖的镜像服务在国内访问很不稳定,很多朋友都无法配置成功.我们提供了一个简单的工具帮助大家开启Docke ...

  8. 微信小程序项目-你是什么垃圾?

    垃圾分类特别火也不知道北京什么时候也开始执行,看见之前上海市民被灵魂拷问了以后垃圾真的不知道如何丢了,作为程序员就做一个小程序造福人类吧. 效果图: 一.全局的app.json和app.wxss加入了 ...

  9. AOP框架Dora.Interception 3.0 [1]: 编程体验

    .NET Core正式发布之后,我为.NET Core度身定制的AOP框架Dora.Interception也升级到3.0.这个版本除了升级底层类库(.NET Standard 2.1)之外,我还对它 ...

  10. 初级Python

    [toc] 一.数据类型 1.1基本数据类型 1.1.1数字类型 1.整数类型 十进制:1010,-219 二进制:以0b或0B开头:0b010,-0B101 八进制,以0o或0O开头:0o123,- ...