zoukankan      html  css  js  c++  java
  • python 字符串常用方法

    一、 基础数据类型 总览
    int:用于计算,计数,运算等。 1,2,3,100......
    str:'这些内容[]'    用户少量数据的存储,便于操作。
    bool: True, False,两种状态,机器反馈给用户的对,错。
    list: [1,'hello', True,[],(),{} ....] 大量的数据,各种数据类型,操作方便。列表
    tuple: (1,'hello', True,[],(),{} ....),只读列表。元组
    dict: 字典。大量的关联型数据。
    {'name':'boy','name_list':[司徒,慈禧,李莲英...],'帅哥':{'name':'帅哥','sex':男}}
    set:集合。{} 关系测试。

    二、 int
    i = 4
    print(i.bit_length()) # 查询十进制转化成二进制占用的最小位数 *

    '''
    十进制 二进制
    1 0000 0001
    2 0000 0010
    3 0000 0011
    4 0000 0100
    ....
    '''

    三、 bool
    数据类型之间的转化。 *****
    #bool ---> int                         True ---> 1          False ----> 0
    a = int(True)
    b = int(False)
    print(a,b)

    #int ---> bool                    非零即True,零即为False
    c = bool(1)
    d = bool(-1)
    e = bool(100)
    f = bool(0)
    print(c,d,e,f)

    #str ---> bool                  空字符串的bool为False ,非空即True(空格也是字符串,不是空)
    a = bool('as')
    b = bool('')
    print(a,b)

    例子:
    name = input(">>>")
    if name:
      print('666')
    else:
      print('无内容')


    #bool ---> str
    a = str(True)
    b = str(False)
    print(a,b,type(a))

    #int ---> str
    a = str(123)
    print(a,type(a))

    #str ---> int                        字符串都是数字组成才能转换成int
    a = int('1234')
    print(a,type(a))

     

    四、字符串常用方法
    对字符串的下面这两部分操作:形成的都是一个新的字符串,与原来的字符串没有关系。
    第一部分:索引切片步长。
    按照索引取值,取出来的都是一个字符,形成的字符串。
    索引:索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

    a = 'ABCDEFGHIJK'
    print(a[0])
    print(a[1])
    print(a[3])
    print(a[7])
    View Code

    切片:按切片取值,顾头不顾尾(就是包含头,不包含尾)

    a = 'ABCDEFGHIJK'
    print(a[2:5])
    print(a[0:4])
    print(a[0:-1]) #-1就是最后一个
    print(a[0:])    #默认到最后
    View Code

    按照切片+步长

    a = 'ABCDEFGHIJK'
    print(a[0:5:2])
    print(a[1:6:3])
    View Code

    如果想倒叙取值,加一个反向步长(负号)。

    a = 'ABCDEFGHIJK'
    print(a[-1:-5:-1])
    print(a[-1:-6:-2])
    View Code

    第二部分:字符串的常用方法。
    name = 'hello woRLd'
    print(name.upper())    #upper:全大写 *****
    print(name.lower())    #lower:全小写  *****
    应用举例:

    复制代码
    username = input('请输入用户名:')
    code = 'ADfer'.upper()
    your_code = input('请输入验证码:').upper()
    print(code, your_code)
    # if username == 'xiaoming' and (your_code == 'ADFER' or ..or....)
    if username == 'xiaoming' and your_code == code:
        print('账号密码及验证码输入正确')
    复制代码

    #startswith:判断字符串是否以什么开头 *****
    #endswith:判断字符串是否以什么结尾 *****

    复制代码
    name = 'hello woRLd'
    print(name.startswith('h'))
    print(name.startswith('he'))
    print(name.startswith('h',3))
    print(name.startswith('e',1,3))
    print(name.startswith('el', 1, 5))
    print(name.startswith('hello woRLd'))
    print(name.endswith('d'))
    复制代码

    name = 'hello woRLd'
    print(name.capitalize()) #首字母大写 其他字母变小写 ***
    print(name.center(20,'*')) #字符串居中,前后填充自定义的字符 **
    print(name.swapcase()) #swapcase 大小写翻转 **


    s1 = 'hello world*handsOMe6boy'
    print(s1.title())           #title 非字母隔开的每个部分的首字母大写   其他字母变小写**


    name = 'hello woRLd'
    find 通过元素找索引,找到第一个就返回,没有此元素则返回-1 *****
    index 通过元素找索引,找到第一个就返回,没有此元素则报错 *****

    复制代码
    print(name.find('e'))
    print(name.find('l'))
    print(name.find('lo'))
    print(name.find('q'))
    print(name.find('L',1,-1))
    print(name.index('h'))
    复制代码

    #strip 默认去除字符串前后的空格,换行符,制表符 *****

    复制代码
    name = '	    hello world
    '
    name1 = '*xiaoming**'
    name2 = 'werxiaogouwqwe'
    print(name.strip())
    print(name1.strip('*'))
    print(name2.strip('erw'))  # 可以指定字符 从左到右依次除去指定的字符
                               #碰到第一个不是指定的字符时停止,同时从右到左
                               #依次除去制定的字符,同样是碰到第一个不是指定的
                               #字符即停止
                               
    print(name2.lstrip('erw')) #只从左到右依次除去指定字符
    print(name2.rstrip('erw')) #只从右到左依次除去指定字符
    复制代码


    举例:

    username = input('请输入用户名:').strip()   # 'xiaoming '
    if username == 'xiaoming':
        print('登陆成功...')


    #split:将字符串分割成列表(str---> list) *****

    复制代码
    s1 = 'hello handsome boy'
    l1 = s1.split() # 默认按照空格分隔
    print(l1)
    
    s2 = 'hello,handsome,boy'
    print(s2.split(','))
    
    s3 = ',hello,handsome,boy'
    print(s3.split(','))
    
    s4 = ' hello handsome boy'
    print(s4.split(' '))
    
    s5 = 'helloqhandqsomeqboy'
    
    print(s5.split('q'))
    print(s5.split('q',1)) # 可设置分割次数
    print(s5.rsplit('q',2)) #从右到左分割2次
    复制代码

    # join 自定制连接符,将可迭代对象中的元素连接起来 *****

    复制代码
    str1 = 'boy'
    s2 = '*'.join(str1)
    s3 = '_'.join(str1)
    print(s2)
    
    print(s3)
    复制代码


    # replace:代替 *****

    msg = 'hello'
    msg1 = msg.replace('l','SB')
    msg2 = msg.replace('l','SB',1) #可设置替换次数
    print(msg1)
    print(msg2)


    格式化输出:format *****

    复制代码
    # 三种方式:
    # 第一种:按顺序接收参数
    s1 = '我叫{},今年{},性别{}'.format('帅哥','18','')
    print(s1)   # 我叫帅哥,今年18,性别男
    
    
    # 第二种:按索引接收参数
    s2 = '我叫{0},今年{1},性别{2},我依然叫{0}'.format('帅哥', '18', '')
    print(s2)  # 我叫帅哥,今年18,性别男,我依然叫帅哥
    
    
    # 第三种:按关键字接收参数
    s3 = '我叫{name},今年{age},性别{sex}'.format(age='18', name='帅哥', sex='')
    print(s3)  # 我叫帅哥,今年18,性别男
    复制代码


    is 系列 *****

    name = 'handsomeboy123'
    name1 = 'a123'
    print(name.isalnum())  # 判断是否由数字或字母组成
    print(name1.isdigit()) # 判断全部是由整数组成
    print(name1.isalpha()) # 判断是否全部由字母组成

    注意(一个坑):字符串中的英文的判断isalpha(),对于unicode编码的string,
    string.isalpha会根据字符串中的字符是否属于Unicode编码的LETTER区域来判断是否都由字母组成。
    所以得出的结果为True,不一定表示只有26个英文字母。例如:

    复制代码
    s = "abc中国"
    print(s.isalpha())  # True
    
    # 若想判断字符串是否为英文字母:可以加上属性encode('UTF-8')
    info = 'abcd'
    print(info.encode('UTF-8').isalpha())  # True
    
    info = 'abcd中国'
    print(info.encode('UTF-8').isalpha())  # False
    复制代码


    扩展:判断字符串是否为中文
    Unicdoe的4E00~9FFF区域表示中文,所以如果一个字符的编码在这个区间内,就说明它是中文。

    复制代码
    def is_Chinese(word):
        for ch in word:
            if 'u4e00' <= ch <= 'u9fff':
                print('This is Chinese')
            else :
                print('This is not Chinese')
    s = '哈哈哈哈123'
    is_Chinese(s)
    复制代码

    公共方法
    name = 'aaabcdgf'
    print(name.count('a')) # 数字符串含有多少个a,有切片
    print(len(name)) # 字符串的长度

     

     

    五、 for循环:用户按照顺序循环可迭代对象的内容。

    复制代码
    msg = '你好我好才是真的好'
    for item in msg:
        print(item)          #依次打印msg的每个字符
    
    for item in msg:
        print(msg)           #打印9次msg的全部内容(字符串长度就是次数)
    
    
    li = ['帅哥','美女','男神','女神','傻帽']
    for i in li:
        print(i)
    
    dic = {'name':'靓仔','age':18,'sex':'man'}
    for k,v in dic.items():
        print(k,v)
    复制代码


    六、in not in
    in与not in:是判断某个元素是不是字符串的一部分
    print('ab' in 'abvde') #返回True

     

  • 相关阅读:
    init_machine 在Kernel中被调用的过程
    maven-surefire-plugin的forkMode分析
    执行Maven install或Maven test命令时控制台输出乱码的解决办法
    Maven 中的dependencies与dependencyManagement的区别
    使用maven profile实现多环境可移植构建
    Maven最佳实践:划分模块
    MySQL的登陆错误:ERROR 1049 (42000): Unknown database 'root'
    Java 连接操作 Redis 出现错误
    关闭多个screen
    linux sed 批量替换字符串
  • 原文地址:https://www.cnblogs.com/yidashi110/p/10092297.html
Copyright © 2011-2022 走看看