python的字符串

    字符串是每个编程语言必备的数据类型,人们的办公无非就是对文字、数字、图片、视频等的处理,其中文字的处理更是不胜枚举,下面我们来看看python的字符串

创建一个字符串

    通常,人在听说一个尚不存在的新事物时,都会根据自己以往的经验“虚构”一个自己认为最相似的事物,这或许就是“期望”。在软件工程这一行,我们不可能指望在客户看到实际的软件前说出他们想要的软件,这太难了,于是我们会做一个原型,呈现在客户面前,客户再根据原型提出自己的期望。要想了解一个东西,实际接触是非常好的一种方法。

    python字符串的创建很简单,只需要一次“赋值”即可,就像下面这样

>>> my_str = "my first string"
>>> my_str
'my first string'
>>> 

当执行第一行的操作时,会创建一个字符串对象"my first string",创建一个引用my_str指向字符串对象"my first string"。就这样,我们得到了一个实际的字符串。

使用字符串

    获得一个东西不是最终目的,获得的东西如果不去创造价值,那就一文不值。下面我们来说说字符串的使用。

判断字符串的类型

  1. 判断一个字符串是否数字,比较简单粗暴,只要字符串中包含[0-9]之外的字符就返回False
    >>> "123".isdigit()
    True
    >>> "-12".isdigit()
    False
    >>> "0002".isdigit()
    True
    >>> 

  2. 判断字符串是否只包含字母和数字
    >>> "0x12".isalnum()
    True
    >>> "12".isalnum()
    True
    >>> "acs".isalnum()
    True
    >>> ".".isalnum()
    False
    >>> 

  3. 判断字符串是否只包含字母
    >>> "123".isalpha()
    False
    >>> "0x12".isalpha()
    False
    >>> "abc".isalpha()
    True
    >>> 

  4. 判断字符串是否全部大/小写,字符串中的字符全部大写,且至少有一个可以大写的字符被大写了,小写是islower,使用方法类似
    >>> "Abc".isupper()
    False
    >>> "ABC".isupper()
    True
    >>> "AB23".isupper()
    True
    >>> "Ab23".isupper()
    False
    >>> "AB-23".isupper()
    True
    >>> 

  5. 判断字符串是否空白符
    >>> " ".isspace()
    True
    >>> "		".isspace()

  6. 还有其他的一些不大常用的方法就不一一讲了,主要还有:istitle

让字符串“列队”

    字符串的输出无疑是计算机软件与用户交互很重要的一种途径,那么整齐的输出格式就变得尤为重要了,下面来看看如何让我们的字符串更整齐和规范化。
  1. 保证字符串宽度ljust/rjust,S.ljust(width[, fillchar]) -> string
    >>> "abc".ljust(5,"_")
    'abc__'
    >>> "abc".rjust(5,"_")
    '__abc'
    >>> 

  2. 0填充,S.zfill(width) -> string
    >>> "126".zfill(6)
    '000126'
    >>> "126".zfill(5)
    '00126'
    >>> 

  3. 将一个可迭代对象的没个元素用相同的字符串分割
    >>> a = ["james",'moore','an']
    >>> ":".join(a)
    'james:moore:an'
    >>> 

查找和替换

    对于字符串的处理,不可避免特定子字符串的查找和替换,下面我们就来看看字符串的查找和替换。
  1. 在字符串中查找子串,S.rfind(sub [,start [,end]]) -> int或者S.find(sub [,start [,end]]) -> int,前者是从前往后找,后者从后往前找,直到找到子串,返回子串的其实下标(以0为起始)
    >>> "abcdefabcave".find('a',0,10)
    0
    >>> "abcdefabcave".rfind('a',0,10)
    9
    >>> 

  2. 统计子串出现的次数
    >>> "abcdefabcave".count('a',0,12)
    3
    >>> "abcdefabcave".count('ab',0,12)
    2
    >>> 

  3. 子串的下标,S.index(sub [,start [,end]]) -> int或者S.rindex(sub [,start [,end]]) -> int,查找子串第一次出现的下标
    >>> "abcdefabcave".index('ab',0,12)
    0
    >>> "abcdefabcave".rindex('ab',0,12)
    6
    >>> 

  4. 替换,S.replace(old, new[, count]) -> string,将old子串替换成new子串,返回替换后的字符串
    >>> "I am Jim,26 years old,Jim Jim jim".replace('Jim','James')
    'I am James,26 years old,James James jim'
    >>> "I am Jim,26 years old,Jim Jim jim".replace('Jim','James',1)
    'I am James,26 years old,Jim Jim jim'
    >>> "I am Jim,26 years old,Jim Jim jim".replace('Jim','James',2)
    'I am James,26 years old,James Jim jim'
    >>> "I am Jim,26 years old,Jim Jim jim".replace('Jim','James',3)
    'I am James,26 years old,James James jim'
    >>> "I am Jim,26 years old,Jim Jim jim".replace('Jim','James',100)
    'I am James,26 years old,James James jim'
    >>> 

  5. 按给定的子串分割,S.split([sep [,maxsplit]]) -> list of strings,sep为分割的子串,maxsplit为最大分割次数,不指定为全部分割。
    >>> my_str = 'name:an;name:moore;name:larry'
    >>> my_str.split(';',1)
    ['name:an', 'name:moore;name:larry']
    >>> my_str.split(';',2)
    ['name:an', 'name:moore', 'name:larry']
    >>> my_str.split(';',3)
    ['name:an', 'name:moore', 'name:larry']
    >>> my_str.split(';')
    ['name:an', 'name:moore', 'name:larry']
    >>> 

字符串的高级应用

    关于字符串的高级应用就不在这里讲述了,如果需要了解,可以参考下面的文章:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值