zoukankan      html  css  js  c++  java
  • python数据类型——字符串类型

    字符串(string)

     字符串,就是字符连成一串,是由字符组成的序列。字符串有编码问题,在之前我已经讲过。本节主要讲字符串的使用。

    创建字符串,不用多说:

    a='123abcd'
    b='diamond'
    print(a,b)

    字符串也是序列,所以也可以向列表一般切片和成员运算:

    print(a[2:])#字符串切片
    print('ab' in a)#成员运算

    重复输出:

    print(a*4)#重复输出字符串

    字符串拼接:

    d= a+b#字符串拼接
    print(d)

     字符串的格式化

    在之前的文章中,字符串的格式化有所提及,再此具体整理一下:

    字符串的格式化大致分有两种方法,一种是用以前提到的“%”,一种是用python的.format方法。

    在编辑此文章时参照了田小计划https://www.cnblogs.com/wilber2013/p/4641616.htmlbenrichttps://www.cnblogs.com/benric/p/4965224.html

    1.格式化操作符(%)

    该方法和c语言的格式化输出字符串是相同的:

    格式化符号

    说明

    %c

    转换成字符(ASCII 码值,或者长度为一的字符串)

    %r

    优先用repr()函数进行字符串转换

    %s

    优先用str()函数进行字符串转换

    %d / %i

    转成有符号十进制数

    %u

    转成无符号十进制数

    %o

    转成无符号八进制数

    %x / %X

    转成无符号十六进制数(x / X 代表转换后的十六进制字符的大小写)

    %e / %E

    转成科学计数法(e / E控制输出e / E)

    %f / %F

    转成浮点数(小数部分自然截断)

    %g / %G

    %e和%f / %E和%F 的简写

    %%

    输出% (格式化字符串里面包括百分号,那么必须使用%%)

     

     

     

     

     

     

     

     

     

     

     

     

     

    格式化操作辅助符

    辅助符号

    说明

    *

    定义宽度或者小数点精度

    -

    用做左对齐

    +

    在正数前面显示加号(+)

    #

    在八进制数前面显示零(0),在十六进制前面显示"0x"或者"0X"(取决于用的是"x"还是"X")

    0

    显示的数字前面填充"0"而不是默认的空格

    (var)

    映射变量(通常用来处理字段类型的参数)

    m.n

    m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

     例:

    num = 100
    
    print "%d to hex is %x" %(num, num)
    print "%d to hex is %X" %(num, num)
    print "%d to hex is %#x" %(num, num)
    print "%d to hex is %#X" %(num, num) 
    
    # 浮点数
    f = 3.1415926
    print "value of f is: %.4f" %f
    
    # 指定宽度和对齐
    students = [{"name":"Wilber", "age":27}, {"name":"Will", "age":28}, {"name":"June", "age":27}]
    print "name: %10s, age: %10d" %(students[0]["name"], students[0]["age"])
    print "name: %-10s, age: %-10d" %(students[1]["name"], students[1]["age"])
    print "name: %*s, age: %0*d" %(10, students[2]["name"], 10, students[2]["age"])
    
    # dict参数
    for student in students:
    print "%(name)s is %(age)d years old" %student

     运行结果为:

     

    2.字符串内建函数format()

    1、使用位置参数

    要点:从以下例子可以看出位置参数不受顺序约束,且可以为{},只要format里有相对应的参数值即可,参数索引从0开,传入位置参数列表可用*列表

    复制代码
    >>> li = ['hoho',18]
    >>> 'my name is {} ,age {}'.format('hoho',18)
    'my name is hoho ,age 18'
    >>> 'my name is {1} ,age {0}'.format(10,'hoho')
    'my name is hoho ,age 10'
    >>> 'my name is {1} ,age {0} {1}'.format(10,'hoho')
    'my name is hoho ,age 10 hoho'
    >>> 'my name is {} ,age {}'.format(*li)
    'my name is hoho ,age 18'
    复制代码

    2、使用关键字参数

    要点:关键字参数值要对得上,可用字典当关键字参数传入值,字典前加**即可

    >>> hash = {'name':'hoho','age':18}
    >>> 'my name is {name},age is {age}'.format(name='hoho',age=19)
    'my name is hoho,age is 19'
    >>> 'my name is {name},age is {age}'.format(**hash)
    'my name is hoho,age is 18'

    3、填充与格式化

    :[填充字符][对齐方式 <^>][宽度]

    >>> '{0:*>10}'.format(10)  ##右对齐
    '********10'
    >>> '{0:*<10}'.format(10)  ##左对齐
    '10********'
    >>> '{0:*^10}'.format(10)  ##居中对齐
    '****10****'

    4、精度与进制

    复制代码
    >>> '{0:.2f}'.format(1/3)
    '0.33'
    >>> '{0:b}'.format(10)    #二进制
    '1010'
    >>> '{0:o}'.format(10)     #八进制
    '12'
    >>> '{0:x}'.format(10)     #16进制
    'a'
    >>> '{:,}'.format(12369132698)  #千分位格式化
    '12,369,132,698'
    复制代码

    5、使用索引

    >>> li
    ['hoho', 18]
    >>> 'name is {0[0]} age is {0[1]}'.format(li)
    'name is hoho age is 18

     字符串的其他内建函数

     字符串中插入相关:

    e='----'.join([a,b,c,d])#在列表的字符串之间插入‘----’
    print(e)
    x='daadijf	dakidn'
    print(x.expandtabs(tabsize=10))#设字符串x中tab中的空格数
    print(a.center(50,'-'))#字符串a放中间,两边放50个‘-’
    print(a.ljust(50,'-'))#字符串放左边,右边放50个‘-’
    print(a.rjust(50,'-'))#字符串放右边,左边放50个‘-’

    字符串索引相关:

    print(a.count('b'))#数出字符串a中字母b的个数
    print(a.find('9'))#查找到第一个元素,并将索引值返回,类似列表中的index()若找不到返回-1
    print(a.rfind('b'))#从右往左找字符串'b',返回找到的第一个的索引值,若找不到返回-1
    print(a.index('2'))#查找到第一个元素,并将索引值返回,找不到就报错

    字符串中内容判断相关,返回布尔值:

    print(a.endswith('cd'))#以某个内容结尾?T/N
    print(a.startswith('12'))#以某个内容开头?T/N
    print('djandaklfbjadf'.isalnum())#判断字符串中是否没有符号,返回布尔值(不常用)
    print('xab'.isdecimal())#是否为10进制数,返回布尔值(不常用)
    print('dasnd'.isdigit())#是否为整数,返回布尔值
    print(a.isidentifier())#是否为合法标识符(不常用)
    print(a.islower())#是否全小写
    print(a.isupper())#是否全大写
    print(a.isspace())#是否为空格
    print(a.istitle())#是否每个单词都大写

    字符串大小写转换相关:

    print(a.lower())#所有大写变成小写
    print(a.upper())#所有小写变大写
    print(a.swapcase())#所有大写变小写,小写变大写
    print(b.capitalize())#首字母大写
    print(a.title())#将字符串中每个单词第一个字母大写

    字符串替换分割相关:

    print(a.strip())#去掉字符串中的空格和换行
    print(a.lstrip())#去掉字符串左边的空格和换行
    print(a.rstrip())#去掉字符串右边的空格和换行
    print(a.replace('123','jdia',1))#替换字符串中第一个参数为第二个参数的字符串。替换第三个参数次,不加默认全部替换
    
    
    print(c.split('',2))#用字符串'c'将字符串分割成列表。第二个参数为分割次数,不加默认全部替换
    print(c.rsplit('',2))#从右往左用字符串'c'将字符串分割成列表。第二个分割为替换次数,不加默认全部替换
  • 相关阅读:
    未完存储过程MySQL
    看山不是山——我们眼中的世界并不可观
    常用Linux命令
    表格行列的删除
    RFID会议签到系统总结(二十一)――服务端的通讯
    FastReport的一些另类用法
    RFID会议签到系统总结(二十二)――系统中的模式
    单元格的计算
    表格行列的移动
    RFID会议签到系统总结(十九)――单数据窗体
  • 原文地址:https://www.cnblogs.com/caijingyue/p/8521665.html
Copyright © 2011-2022 走看看