玩命加载中...
# 掌握Python中的字符串
10个小节,预计用时**45分钟**。掌握Python的字符串。
字符串和`list`有很多相似的操作。若你对python中的`list`不够熟悉的话,建议先从掌握Python中的list开始。
请打开您的电脑,按照步骤一步步完成。
本教程基于**Python 2.7**。
原创者:**batmanX**
|
编辑校对:SofaSofa TeamC
|
谢绝转载,违者侵权。
----
### 0. 环境设置
```python
#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "欢迎加入SofaSofa数据科学社区!"
```
### 1. 定义字符串
在python中字符串类型是`str`。我们一般用单引号`''`或者双引号`""`来定义、赋值字符串变量。单引号和双引号通常没有区别。
```python
#定义字符串
str_1 = 'SofaSofa'
str_2 = "SofaSofa"
str_3 = 'Python is good!'
print str_1
print str_2
print str_3
#下面这行代码验证了单引号与双引号在这个例子中是没有区别的。
print str_1 == str_2
#定义一个空字符
str_4 = ''
#注意:空字符不等同于空格字符
str_5 = ''
str_6 = ' '
str_7 = ' '
print str_5 == str_6
print str_6 == str_7
```
`type`函数返回变量的类型。这里字符串的变量类型为`str`。
```python
str_1 = 'sofasofa'
print type(str_1)
```
我们知道`len`函数可以返回list的长度,`len`函数也可以返回字符串的字符个数。
```python
str_1 = 'sofasofa'
str_2 = 'Hello SofaSofa!'
print len(str_1)
print len(str_2)
#对于中文字符来说,每个汉字(包括中文标点)的长度为3。试试下面的例子
print len("你好")
print len("你好!")
```
### 2. 字符与数值的转换
我们可以通过函数`int()`,`float()`将字符变量转换为数值变量。
```python
#对于疑似小数的字符串(含有小数点),我们用float函数将其转换为浮点型数值。
pi = '3.14'
print type(pi)
pi = float(pi)
print type(pi), pi
#对于疑似整数的字符串(不含有小数点),我们用int函数将其转换为整数型数值。
pi = '3'
print type(pi)
pi = int(pi)
print type(pi), pi
#转换为数值之后我们就可以进行正常的数值运算了。
pi = '3.14'
pi = float(pi)
print pi ** 2
```
我们也可以通过函数`str()`将数值变量转换为字符变量。
```python
num_1 = 2
num_2 = 3
result = str(num_1 + num_2)
print type(result), result
```
### 3. 读取字符串中的字符
读取字符串中的字符与读取list中的元素的操作是一样的。
```python
my_str = 'Hello SofaSofa!'
# 读取my_str中的第一个字符
a = my_str[0]
# 读取my_list中的第三个元素
b = my_str[2]
```
也可以反向读取字符串中的字符。
```python
# 读取my_str中的最后一个字符
c = my_str[-1]
print c
# 读取my_str中的倒数第二个字符
d = my_str[-2]
print d
```
我们可以用`:`读取string中的多个字符。基本用法与`list`相同。
```python
my_str = 'Hello SofaSofa!'
# 从左向右输出前7个字符
print my_str[:7]
# 从右往左输出后4个元素
print my_str[-4:]
```
上面是读取连续的字符,也可以读取非连续的字符。基本用法与`list`相同。
```python
my_str = 'Hello SofaSofa!'
# 输出第2,4,6,8个字符
a = my_str[1:8:2]
print a
```
利用`:`和`-1`,我们可以将整个字符串取逆。
```python
my_str = 'Hello SofaSofa!'
a = my_str[::-1]
print a
#试试看下面返回什么呢?
a = my_str[::-2]
print a
```