zoukankan      html  css  js  c++  java
  • Python字符串基础操作

    ==============字符串========

    >>> s1='www.baidu.com'

    >>> type(s1)

    <type 'str'>

    >>> type(2)

    <type 'int'>

    >>> type("'dsfdsjk'")

    <type 'str'>

    type()测一下是什么类型

    字符串的访问 s1[0]=’  s1[2]=w  用下标来访问

    >>> s6='aa bb'

    >>> print s6

    aa

    bb

    >>> #/n是转义字符,表示换行符  各种换行符如图记载

    >>> s6='aa bb'

    >>> print s6

    aa

    bb

    >>> s7=r'aa bb'      #加上r的时候就是不转义的意思【关闭转义机制】

    >>> print s7

    aa bb

    >>> s8=u'aa bb'  #加上u的时候表示后面跟的字符串是unicode编码

    >>> print s8

    aa

    bb

    >>> ‘%10s%10d%10.2f’%(‘record’,21,25.652)  格式化字符串  %s格式化为字符串  %d格式化为整数 %f格式化为浮点数(反正前面有几个格式占位符这边就几个逗号隔开的对应值)10.2f表示浮点数占10位小数点后面保留2  四舍五入

    >>> print 'name %s age %d record %f'%('amily',25,99.9)

    name amily age 25 record 99.900000

    >>> s1='www.baidu'

    >>> s2='.com'

    >>> print s1+s2   # +加号字符串连接  +前后必须都是字符串类型

    www.baidu.com

    >>> s1='hello amily'

    >>> s2=2

    >>> print s1+str(s2)   转换为字符串类型再进行加法运算

    hello amily2

    >>> li1=[1]*5            #*星号  字符串重复   等于N个加法 *前为字符串*后为数字

    >>> print li1

    [1, 1, 1, 1, 1]

    >>> li2=['aa']*5

    >>> print li2

    ['aa', 'aa', 'aa', 'aa', 'aa']

    >>> s1='111'*20

    >>> print s1

    111111111111111111111111111111111111111111111111111111111111

    >>> s1='www.baidu.com'

    >>> print s1[4]             #通过[]下标访问字符串的第几个位置的值  str[index]

    b

    >>> s1='www.baidu.com'

    >>> print s1[-4]     #负数也可以,负数就是从右边为起点

    .

    >>> 

    >>> print s1[2:4]               # str[start:end]   切片  start切片起点 end切片终点起点或者终点可以不填   写负数就是从右边开始

    w.

    >>>     #这里切片起点必须小于终点,因为是从左向右切的。

    如果要从右向左切片, 则str[big:small:-1], 这样是逆序输出

    >>> s1='www.baidu.com'

    >>> print s1[8:3:-1]

    udiab

    >>> s1='www.baidu.com'

    >>> print s1[-1::-1]                   #实现字符串的逆序输出

    moc.udiab.www

    >>>

    字符串其他常用函数    

    >>> s='dafdfh234234hjk'

    >>> s.isalnum()                #str.isalnum 判断字符串中是否均为数字或者字母

    True

    >>> s='sadfhd.?<dfah'

    >>> s.isalnum()

    False

    >>> 

    >>> s='sdfhdjshf0'

    >>> s.isalpha()                     #str.isalpha判断字符串中是否均为字母

    False

    >>> s='dfdfhdgf'

    >>> s.isalpha()

    True

    >>> s='132746'

    >>> s.isdigit()                             #str.isdigit判断字符串中是否均为数字

    True

    >>> s='sdfgydh678'

    >>> s.isdigit()

    False

    >>> s='ABV'

    >>> s.isupper()                               #str.isupper判断字符串中是否均为大写字母

    True

    >>> s='dfhu'

    >>> s.islower()                                #str.islower判断字符串中是否均为小写字母

    True

    >>> s=''

    >>> s.isspace()                                      #str.isspace 判断字符串是否为空格

    False

    >>> s=' '

    >>> s.isspace()

    True

    >>> s='djfdjsfh'

    >>> s.upper()                                            #str.upper字符串转化为大写字母

    'DJFDJSFH'

    >>> s='DJKJSDJFK'

    >>> s.lower()                                             #str.lower字符串转化为小写字母

    'djkjsdjfk'

    >>> s='DJKJSDJFK'

    >>> s.lower()

    'djkjsdjfk'

    >>> s='dfhAJKH'

    >>> s.upper()

    'DFHAJKH'

    >>> s.lower()

    'dfhajkh'

    >>> s='   dsjfhdsjkf  kdjfhj  '

    >>> s.strip()                            #str.strip是去除某字符串左右的一个或多个空格(广义空格, ,

                                                               可以写成str.strip(‘ ’)

                                                                   #str.split()前后中间的空格都能去掉

    'dsjfhdsjkf  kdjfhj'

    >>> s.rstrip()                                     #str.rstrip  是去除字符串右边的空格(可以去掉多个空格)

    '   dsjfhdsjkf  kdjfhj'

    >>> s.lstrip()                                       #str.lstrip  是去除字符串左边的空格(可以去掉多个空格)

    'dsjfhdsjkf  kdjfhj  '

    #coding:utf-8

    s='www.baidu.com'

    s1='www'

    s2='.com'

    if s.startswith(s1):                            #str.startswith(str1) 判断字符串是否以str1开始,返回布尔值

        print 'www'

    if s.endswith(s2):                                #str.endswith(str1)判断字符串是否以str1结束,返回布尔值

    print '.com'

    >>> s='www.baidu.com'

    >>> id(s)                                               #id(str)查看字符串在内存中的地址

    46351608

    >>> s1=s.replace('b','B')                          #str.replace(‘a’,’b’)将字符串中的a全部替换为b

    >>> id(s1)

    46353008

    >>> s=s.replace('w','S')                           #可以看到replace函数“修改了”原来的字符串,字符串位置改变了,说明其实不是原来的字符串了,so字符串是不可以被修改的,只是产生了一个新的字符串罢了 

    >>> id(s)

    46353808

    >>> print s

    SSS.baidu.com

    >>> s='   dsfdsf  f d 234h djfha '

    >>> li=s.split()                        #str.split()字符串分割,返回一个list类型

    >>> print li

    ['dsfdsf', 'f', 'd', '234h', 'djfha']

    这个其实用split可以直接实现,但是这里最重要的是思路的循序渐进。写比较复杂的算法一定要有循序渐进的思路,慢慢来,一点点的去实现,然后在组合在一起,尤其是循环的这种一次找不到规律,可以逐步的走几个循环,找到规律再写while或者for语句。

    #coding:utf-8

    def Mysplit(s):

        s=s.strip()

        while(s.find(' ')!=-1):

            index1=s.find(' ')

            s1=s[:index1]

            s=s[len(s1):]

            s=s.lstrip()

            print s1

        else:

            print s

    Mysplit('   dsfdsf  f d 234h djfha hfkdjfdjd  dkfdk  dkfjadkjf  dfajkdf adkfasdfhjd 34737 ')

    str.split()细讲  记录split()返回的是list类型的 以sth为分隔符,分割N次(分为N+1份),取第几份。Split(‘m’,n)[x]

    >>> u = "www.doiido.com.cn"

      

    #使用默认分隔符

    >>> print u.split()

    ['www.doiido.com.cn']

      

    #以"."为分隔符

    >>> print u.split('.')

    ['www', 'doiido', 'com', 'cn']

      

    #分割0次

    >>> print u.split('.',0)

    ['www.doiido.com.cn']

      

    #分割一次

    >>> print u.split('.',1)

    ['www', 'doiido.com.cn']

      

    #分割两次

    >>> print u.split('.',2)

    ['www', 'doiido', 'com.cn']

      

    #分割两次,并取序列为1的项

    >>> print u.split('.',2)[1]

    doiido

      

    #分割最多次(实际与不加num参数相同)

    >>> print u.split('.',-1)

    ['www', 'doiido', 'com', 'cn']

      

    #分割两次,并把分割后的三个部分保存到三个文件

    >>> u1,u2,u3 = u.split('.',2)

    >>> print u1

    www

    >>> print u2

    doiido

    >>> print u3

    com.cn

    去掉换行符

    >>> c = '''say

    hello

    baby'''

      

    >>> print c

    say

    hello

    baby

      

    >>> print c.split(' ')

    ['say', 'hello', 'baby']

    分离文件名与路径

    >>> os.path.split('/dodo/soft/python')

    ('/dodo/soft', 'python')

    >>> os.path.split('/dodo/soft/python/')

    ('/dodo/soft/python', '')

    好例子

    >>> str='hello hahaha<[www.baidu.com]>gdf238728'

    >>> print str.split('[',1)[1].split(']',1)[0]

    www.baidu.com

    >>> print str.split('[',1)[1].split(']',1)[0].split('.')

    ['www', 'baidu', 'com']

    >>> 

  • 相关阅读:
    取得窗口大小和窗口位置兼容所有浏览器的js代码
    一个简单易用的导出Excel类
    如何快速启动chrome插件
    网页表单设计案例
    Ubuntu下的打包解包
    The source file is different from when the module was built. Would you like the debugger to use it anyway?
    FFisher分布
    kalman filter
    Group delay Matlab simulate
    24位位图格式解析
  • 原文地址:https://www.cnblogs.com/AmilyWilly/p/5103489.html
Copyright © 2011-2022 走看看