image
字符串(String)
字符串(String), 是由零个或多个字符组成的有限序列. 一般记为 s=a[1]a[2]...a[n]. 它是编程语言中表示文本的数据类型.
以上是维基百科中对字符串的定义.
字符串是字符的有序序列, 在 python 中字符串是以单引号', 双引号" 或三引号'''括起来的任意文本.
三引号内的字符串可以分为多行.
>>> a = 'I am keinYe'
>>> print(a)
I am keinYe
>>> b = "I am keinYe"
>>> print(b)
I am keinYe
>>> c = '''
- ...I
- ...am
- ...keinYe
- ...'''
- >>> print(c)
- I
- am
- keinYe
- >>>
既然单引号和双引号在 python 中是定义字符串的起始和停止条件, 那么如果要输出含有单引号或双引号的字符串如何处理? 首先说下这个完全没有问题, 不但没有问题你还有两种不同的选择可以完成这个功能.
在单引号和双引号的嵌套来实现输出含有单引号或双引号的字符串
- >>> print("What's your name?")
- What's your name?
- >>> print('"Hello keinYe!" is string!')
- "Hello keinYe!" is string!
使用转义字符来输出含有单引号或双引号的字符串
- >>> print('What\'s your name?')
- What's your name?
- >>> print("\"Hello keinYe!\"is string!")
- "Hello keinYe!" is string!
如果字符串中同时含有单引号和双引号该怎么处理呢?
print('What\'s your name?, \"Hello keinYe!\" is string!')
字符串基本操作
从字符串的定义可以看出字符串是一种有序序列, 因此字符串具有如下操作:
len(): 获取字符串长度
+ : 连接两个字符串
* : 重复字符串
in : 判断元素是否存在于序列中
max() : 返回最大值
min() : 返回最小值
operator 模块 : 比较 2 个字符串
len()
len() 函数用来获取指定字符串的长度, 如下所示:
- >>> a = 'Hello keinYe!'
- >>> length = len(a)
- >>> print(length)
- 13
- >>> type(length)
- <class 'int'>
从以上示例可以看出 len() 函数返回的是字符串的字符个数, 且返回值是一个整形数据.
+
+ 用来连接 (或拼接) 两个字符串
- >>> a = 'Hello'
- >>> b = "World!"
- >>> c = a + b
- >>> print(c)
- Hello World!
- *
* 用来重复字符串 n 次, 在特殊情况下这会相当有用
- >>> a = "Hello"
- >>> b = a * 5
- >>> print(b)
- Hello Hello Hello Hello Hello
- in
从字面理解表示在... 之内, 在 python 中用来判断一个字符串是否包含在另一个字符串内
- >>> a = "Hello World!"
- >>> b = "Hello"
- >>> print(b in a)
- True
- >>> c = "hello"
- >>> print(c in a)
- False
max() 和 min()
max() 和 min() 用来获取字符串的最大值和最小值.
- >>> a = "HelloWorld!"
- >>> max(a)
- r
- >>> min(a)
- !
operator 模块
将两个字符串进行比较.
- >>> str1 = "Hello World!"
- >>> str2 = "Hello keinYe!"
- >>> import operator
- >>> operator.lt(str1, str2)
- True
- >>> operator.le(str1, str2)
- True
- >>> operator.eq(str1, str2)
- False
- >>> operator.ne(str1, str2)
- True
- >>> operator.ge(str1, str2)
- False
- >>> operator.gt(str1, str2)
- False
字符串输出格式化
在使用字符串的过程中, 常常遇到需要动态更改字符串中的某个位置的内容, 比如根据输入姓名输出 Hello, name!, 此时就需要用到字符串输出格式化, 字符串格式化怎么理解呢? 看一下内容
字符串格式化化, 就是要先制定一个模板, 在这个模板中某个或者某几个地方留出空位来, 然后在那些空位填上字符串. 那么, 那些空位, 需要用一个符号来表示, 这个符号通常被叫做占位符(仅仅是占据着那个位置, 并不是输出的内容).
在 python 中常见的占位符有以下几种
占位符 | 描述 |
---|---|
%s | 字符串 (采用 str() 的显示) |
%r | 字符串 (采用 repr() 的显示) |
%c | 单个字符 |
%b | 二进制整数 |
%d | 十进制整数 |
%i | 十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数 |
%e | 指数 (基底写为 e) |
%E | 指数 (基底写为 E) |
%f | 浮点数 |
%F | 浮点数,与上相同 |
%g | 指数(e)� 或浮点数 (根据显示长度) |
%G | 指数 (E) 或浮点数 (根据显示长度) |
看一下示例:
- >>> print("Hello, %s!" %('keinYe'))
- Hello, keinYe!
- >>> year = 2018
- >>> month = 11
- >>> day = 28
- >>> print("今天是 %d 年 %d 月 %d 日" %(year, month, day))
今天是 2018 年 11 月 28 日
- >>> PI = 3.1415926
- >>> print('π = %f' %PI)
π = 3.141593
>>> print('π = %3.2f' %PI)
π = 3.14
>>> print('π = %3.8f' %PI)
π = 3.14159260
在 python 中还有另外一种字符串格式化方法, 那就是 string.format()方法, 在该方法中使用 {} 作为占位符.
这种方法真的是非常好, 而且非常简单, 只需要将对应的东西, 按照顺序在 format 后面的括号中排列好, 分别对应占位符 {} 即可.
- >>> str = "I like {}".format('python')
- >>> print(str)
- I like python
- >>> str = '今天是 {} 年 {} 月 {} 日'.format(2018, 11, 28)
- >>> print(str)
今天是 2018 年 11 月 28 日
>>> print('π = {}'.format(3.1415926))
π = 3.1415926
使用 string.format() 方法让你可以不必关心数据类型, 使用 {} 作为通用占位符无论最终索要填充的是什么内容都可以正常工作.
来源: http://www.jianshu.com/p/d5668f9018a9