小白学 Python(3):基础数据类型(下)
人生苦短,我选Python
引言
前文传送门
前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串。
什么是字符串?
字符串是由字符组成的一串有限序列,如: '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 上,方便大家取用。
小白学 Python(3):基础数据类型(下)的更多相关文章
- 小白学 Python(17):基础数据类型(函数)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(2):基础数据类型(上)
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...
- 小白学 Python(6):基础运算符(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(8):基础流程控制(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(10):基础数据结构(列表)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(13):基础数据结构(字典)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(15):基础数据结构(集合)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(16):基础数据类型(函数)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- 小白学 Python(24):Excel 基础操作(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- Java基础语法(总结篇)
关键字&标识符 关键字的概念与特征 概念:Java关键字是事先定义好的对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名和 ...
- Python3实战Spark大数据分析及调度 (网盘分享)
Python3实战Spark大数据分析及调度 搜索QQ号直接加群获取其它学习资料:715301384 部分课程截图: 链接:https://pan.baidu.com/s/12VDmdhN4hr7yp ...
- 进击的 Java ,云原生时代的蜕变
作者| 易立 阿里云资深技术专家 导读:云原生时代的来临,与Java 开发者到底有什么联系?有人说,云原生压根不是为了 Java 存在的.然而,本文的作者却认为云原生时代,Java 依然可以胜任&qu ...
- 动态设置 view 在布局中位置
一.概述 有时项目需要动态设置一个 底部列表,比如 popupwindow ,listview 底部显示 ,所以记录一下 此处, android.support.v7.widget.CardView ...
- .Net基础篇_学习笔记_第三天_Convert类型转换
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 配置phpmyadmin连接远程 MySQL数据库
引言:1.phpmyadmin程序所在服务器:192.168.1.1,访问地址为:http://192.168.1.1/phpmyadmin2.MySQL数据库所在服务器:192.168.1.2, ...
- spring scope prototype与singleton区别
1.singleton作用域 当一个bean的作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配 ...
- Salesforce学习之路-developer篇(一)利用VS Code结合Git开发Salesforce
Part 1: 从Git中克隆代码到本地 git clone https://github.com/git/git Part 2: 在VS Code中安装Salesforce和Git插件 在VS Co ...
- 制定一个学习liunx的目标
制定一个学习liunx的目标 学习目标方法 1.在这五个月的学习时间里,制定一套自己的学习方式. 2.养成做笔记以及写博客的习惯 . 3.坚持上课前预习,自习时间总结 . 4.紧跟 ...
- Scrapy项目 - 数据简析 - 实现豆瓣 Top250 电影信息爬取的爬虫设计
一.数据分析截图(weka数据分析截图 ) 本例实验,使用Weka 3.7对豆瓣电影网页上所罗列的上映电影信息,如:标题.主要信息(年份.国家.类型)和评分等的信息进行数据分析,Weka 3.7数据分 ...