字符串操作

创建

#创建字符串的各种形式

In [1]: s1 = 'lenovo'                                                                            
In [2]: s2 = "HENAN"                                                                             
In [3]: s3 = """hello henan"""                                                                   
In [4]: s4 = '''hello lenovo'''                                                                 
In [5]: s5 = """hello 
   ...: world 
   ...: """                                                                                      
In [6]: s6 = '''hello 
   ...: zhengzhou 
   ...: '''

简单操作

\ 转义符

In [7]: testimony = 'This shirt doesn\'t fit me'                                                 
In [8]: print(testimony)                                                                         
This shirt doesn't fit me

In [9]: words = 'hello \nshark'                                                                  
In [10]: print(words)                                                                            
hello 
shark

+ 拼接

In [11]: s1 = "hello"                                                                            
In [12]: s2 = "henan"                                                                            
In [13]: s = s1 + " " +s2                                                                        
In [14]: print(s)                                                                                
hello henan

不可以用 字符串和 一个非字符串类型的对象相加

In [15]: 'lenovo' + 1         #这样写就会报错                                                                   
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-15-20a1bb21d68f> in <module>
----> 1 'lenovo' + 1

TypeError: can only concatenate str (not "int") to str

* 复制

In [17]: print('*' * 10)  #打印10个星号                                                                       
**********

In [18]: print("hello-->\n" *6)    #打印6行  \n是换行符                                                              
hello-->
hello-->
hello-->
hello-->
hello-->
hello-->

进阶操作

字符串 是 Python 中的一个 序列类型 的数据结构

  • 存放的数据,在其内是有序的,内部的数据是可以通过在其内部所处的位置进行访问等操作。

序列类型的特点

  • 序列里的每个数据被称为序列的一个元素
  • 元素在序列里都是有个自己的位置的,这个位置被称为索引或者叫偏移量,也有叫下标的
  • 下标索号好从 0 开始的
  • 序列中的每一个元素可以通过这个元素的索引号来获取到
  • 获取序列类型数据中的多个元素需要用切片的操作来获取到
s1 = "shark"

在这里插入图片描述
获取元素

   #获取单个元素
In [20]: s1[0]                                                                                   
Out[20]: 's'

In [21]: s1[3]                                                                                   
Out[21]: 'r'

In [22]: s1[-1]                                                                                  
Out[22]: 'k'

切片
在这里插入图片描述

# 使用切片获取多个元素
In [23]: s1[0:2]                                                                                 
Out[23]: 'sh'
# 起始和结尾的索引号可以不写
In [24]: s1[:]                                                                                   
Out[24]: 'shark'

In [26]: s1[3:]                                                                                  
Out[26]: 'rk'

In [27]: s1[:-1]                                                                                 
Out[27]: 'shar'

下面这样的操作,臣妾做不到

In [28]: s1[-1:-3]                                                                               
Out[28]: ''

因为从左向右开始操作, 索引号 -1 的右边没有任何索引号了
-3 在 -1 的左边

# 获取字符串的长度,包含空格和换行符
In [29]: n = len(s1)      #s1还是shark                                                                       

In [30]: n                                                                                       
Out[30]: 5

利用字符串对象的方法

- split 分割
默认使用 空格或者 Tab 间做为分隔符

In [31]: url = '千峰官网   www.qianfeng.com'                                                        

In [32]: url.split()                                                                             
Out[32]: ['千峰官网', 'www.qianfeng.com']

可以指定分隔符

In [33]: ip = '192.168.1.100'                                                                    

In [35]: ip.split('.')                                                                           
Out[35]: ['192', '168', '1', '100']

- rsplit 从右向左分割

In [36]: ip.rsplit('.', 1)                                                                       
Out[36]: ['192.168.1', '100']

上面 split(’.’, 1) 中的第二参数 1 ,表示 找到第一个分隔符 .,就结束。

- replace 替换

In [37]: url = 'www.qianfeng.com'                                                                   

In [38]: url2 = url.replace('.','_')                                                             

In [39]: url                                                                                     
Out[39]: 'www.qianfeng.com'

In [40]: url2                                                                                    
Out[40]: 'www_qianfeng_com'

- strip 移除字符串两端的空白字符

In [41]: s = '  adley'                                                                           

In [42]: s                                                                                       
Out[42]: '  adley'

In [43]: s.strip()                                                                               
Out[43]: 'adley'

- startswith 判断字符串以什么为开头

In [44]: s = 'adley'                                                                             

In [45]: s.startswith('a')                                                                       
Out[45]: True

In [46]: s.startswith('ad')                                                                      
Out[46]: True

In [47]: s.startswith('l')                                                                       
Out[47]: False

- endswith 判断字符串以什么为结尾

In [44]: s = 'adley'

In [48]: s.endswith('y')                                                                         
Out[48]: True

In [49]: s.endswith('ey')                                                                        
Out[49]: True

In [50]: s.endswith('e')                                                                         
Out[50]: False

交互输入

在这里插入图片描述

python2.x 中使用 raw_input(">>:")

特殊的情况

> 注意: 空字符串总是被视为任何其他字符串的子串,因此 “” in “abc” 将返回 True。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值