3. python 字符串的一般使用

1.基本操作

1)使用+连接

>>> "abc"+"efg" 
  'abcefg' 
  >>> a="abc" 
  >>> b="efg" 
  >>> c=a+b 
  >>> c 
  'abcefg' 
  >>>

2)使用*重复

>>> "abc"*3 
  'abcabcabc' 
  >>> "abc\n"*3 
  'abc\nabc\nabc\n' 
  >>> print("abc\n"*3) 
  abc 
  abc 
  abc 
   
  >>>

3)字符串不能使用+连接数字

>>> "abc"+9 
  Traceback (most recent call last): 
    File "", line 1, in  
      "abc"+9 
  TypeError: Can't convert 'int' object to str implicitly

4)使用for来迭代

>>> a="abcdefg" 
  >>> for x in a:print(x) 
   
  a 
  b 
  c 
  d 
  e 
  f 
  g

5)使用in来找字符,后面我们还会说到str.find()方法,跟in非常相似

>>> a="abcdefg" 
  >>> "h" in a 
  False 
  >>> "abc" in a 
  True 
  >>>

2.索引与分片

1)索引

字符串可以通过索引来查找想要的字符,而且索引分成正负,通过不同的查询方向来查找

>>> a="abcdefg" 
  >>> a[0],a[1],a[5] 
  ('a', 'b', 'f') 
  >>> a[-2],a[-1],a[-5] 
  ('f', 'g', 'c') 
  >>>

2)分片,说白了就是提取字符串的某些部分,而且当索引使用负数则返回空

>>> a="abcdefg" 
  >>> a[1:] 
  'bcdefg' 
  >>> a[1:3] 
  'bc' 
  >>> a[-1:3] 
  '' 
  >>>

我使用一张图来说明一下这个分片是怎么分的,以a[1:3]为例子

从图上面我们比较清楚情况,对于1,他是把指针放到a的后面,从b开始数,a不算,然后后面的3,他是把指针放到d的前面,不算d

所以返回的只有bc

还有需要特殊说明一些例子:

a[1:]从第二个字符开始到结束

a[:3]从第一个字符开始到第二个字符,也就是第三个字符前

a[:]复制所有字符

其实还有第三个参数,步进,说白了,就是跳着选,就是要看跳几个而已

>>> a="abcdefghijklmn" 
 >>> a[2:8:2] 
 'ceg' 
  >>> a[::3] 
  'adgjm' 
  >>>

a[2:8:2]代表从第三个字符开始抽取,到第八个之前也就是第七个,然后每隔2个挑一个出来

a[::3]代表从所有字符中每隔3个挑一个出来

如果步进是复数,则反着挑

3.字符串转换str()与repr()

>>> str(42) 
  '42' 
  >>> repr(43) 
  '43'

区别,在使用print的时候,repr多了一对单引号

>>> print(str('aaa'),repr('aaa')) 
  aaa 'aaa'

4.修改字符串

字符串是不可以修改的,那么怎么修改呢?

其实过程是我们从一个字符串里面抽取某些字符,然后在加上其他的字符,形成新的字符串对象

>>> a="abcdefghijklmn" 
  >>> id(a) 
  24338048 
  >>> b=a[1:5]+" \n this is a str" 
 >>> id(b) 
  24342896 
 >>> b 
  'bcde \n this is a str' 
  >>> print(b) 
  bcde  
  this is a str 
 >>>

3. python 字符串的一般使用的更多相关文章

  1. 关于python字符串连接的操作

    python字符串连接的N种方式 注:本文转自http://www.cnblogs.com/dream397/p/3925436.html 这是一篇不错的文章 故转 python中有很多字符串连接方式 ...

  2. StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing the strings?

    StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing t ...

  3. Python 字符串

    Python访问字符串中的值 Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. Python访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/bin/py ...

  4. python字符串方法的简单使用

    学习python字符串方法的使用,对书中列举的每种方法都做一个试用,将结果记录,方便以后查询. (1) s.capitalize() ;功能:返回字符串的的副本,并将首字母大写.使用如下: >& ...

  5. python字符串基础知识

    1.python字符串可以用"aaa",'aaa',"""aaa""这三种方式来表示 2.python中的转义字符串为" ...

  6. Python 字符串格式化

    Python 字符串格式化 Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存 一 ...

  7. Python 字符串操作

    Python 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) 去空格及特殊符号 s.strip() .lstrip() .rstrip(',') 复制字符 ...

  8. 【C++实现python字符串函数库】strip、lstrip、rstrip方法

    [C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...

  9. 【C++实现python字符串函数库】二:字符串匹配函数startswith与endswith

    [C++实现python字符串函数库]字符串匹配函数startswith与endswith 这两个函数用于匹配字符串的开头或末尾,判断是否包含另一个字符串,它们返回bool值.startswith() ...

  10. 【C++实现python字符串函数库】一:分割函数:split、rsplit

    [C++实现python字符串函数库]split()与rsplit()方法 前言 本系列文章将介绍python提供的字符串函数,并尝试使用C++来实现这些函数.这些C++函数在这里做单独的分析,最后我 ...

随机推荐

  1. Linux学习笔记:rm删除文件和文件夹

    使用rm命令删除一个文件或者目录 使用rmdir可以删除空文件夹 参数: -i:删除前逐一询问确认 -f:即使原档案属性设为唯读,亦直接删除,无需逐一确认 -r:递归 删除文件可以直接使用rm命令,若 ...

  2. 阿里百川码力APP监控 来了!

    阿里百川码力APP监控  来了!这个APP监控 和手淘一起成长历经千锤百炼 走过千BUG万坑如今百川起产品   为了让你的APP更好 用户更爽! 在移动互联网时代,一款应用是否成功,用户体验是一个关键 ...

  3. 大家来探讨下,IRepository 应该怎么定义?

    ORM已EF为例子:我见的最多的是泛型的IRepository, public partial interface IRepository<T> where T : BaseEntity{ ...

  4. CentOS 7不能联网解决办法

    在使用 Ubuntu 一段时间之后想体验一下 CentOS,就去下载了 CentOS 7 安装到了虚拟机里面,结果发现不能联网,一直提示Cannot find a valid baseurl for ...

  5. .NETCore Sqlserver下对Dapper的扩展支持

    这里我们自定义一个IServiceCollection的扩展,例如下面我的扩展 services.AddDapperContext(dapperoptions => { dapperoption ...

  6. drools7 (二、agenda-group 的使用)

    几个关键点: 1. 如果没有指定agenda-group 则默认把所有未指定agenda-group的 rules 都执行一遍 2. 如果指定了agenda-group 使用的时候必须指定该name才 ...

  7. IntelliJ IDEA 2017.2安装

    1.准备(终极版) 2.安装 3.破解 4.成功

  8. Jersey入门一:从Maven Archetype创建jersey项目

    1.用Ctrl+空格调出Spotlight搜索,输入ter调出终端窗口  2.在终端窗口进入将创建jersey项目的目录:  3.输入如下命令,创建一个名为的simple-service项目: m ...

  9. Openstack-开发基础 stevedore学习

    在给openstack-N版加路由的时候发现怎么都无法搞定,原来现在用这个模块来处理了 stevedore是用来实现动态加载代码的开源模块.它是在OpenStack中用来加载插件的公共模块.可以独立于 ...

  10. Navicat Premium 激活码 序列号。破解版。

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha Navicat Premium 激活码  序列号.破解版.