zoukankan      html  css  js  c++  java
  • python数据类型之字符串(str)和其常用方法

    字符串是有序的,不可变的。

    下面的例子说明了字符串是不可变的

    name = 'alex'
    name = 'Jack'
    """
    并没有变,只是给name开启了一块新内存,储存Jack
    
    In [9]: name = 'alex'
    
    In [10]: id(name)
    Out[10]: 4501642800
    
    In [11]: name = 'Rain'
    
    In [12]: id(name)
    Out[12]: 4501820168
    
    原来的被python给清理了
    """

    字符串常用方法:

    s = 'Hello World'
    print(s.swapcase())  # hELLO wORLD 大写变小写,小写变大写
    print(s.upper()) # HELLO WORLD 变大写
    print(s.lower())  # hello world 变小写,只对中英文有效
    ss = 'alex edward' 
    print(ss.title()) # Alex Edward 首字母大写
    print(s.casefold())  # hello world  # 变小写,对于非中英文的也有效
    print(s.center(13, '*'))  # *Hello World* 长度、两边要打印什么
    print(s.count('o', 0, 5))  # 1 统计指定的字符串,范围从0到5
    print(s.endswith('!'))  # False 以什么结尾
    s2 = 'a	b'
    print(s2)  # a    b
    print(s2.expandtabs(10))  # a         b     # 扩展tab键的长度
    print(s.find('l', 6, 10))  # 9 找到,指定范围
    print(s.rfind('o'))  # 7 从右边开始找
    
    info = "my name is {name} and i'm {age} years old".format(name='alex', age=27)
    print(info)  # my name is alex and i'm 27 years old
    
    print(s.index('o', 5, 11))  # 7  和list的index一样  lindex()从左边找,rindex()从右边找
    
    s3 = 'aa11啊'
    print(s3.isalnum())  # 是否包含阿拉伯的数字或字符 True
    print(s3.isalpha())  # 是否是阿拉伯字符  False
    print(s3.isdigit())  # False  是否是数字  和isnumeric()、isdecimal()一样
    print(s3.isidentifier())  # True 是否是合法的变量
    print(s3.islower())  # True 是否小写
    print(s3.isprintable())  # True 是否可被打印  二进制流的不可被打印
    print(s3.istitle())  # False  首字母大写  isupper() 是否都是大写
    print(s3.isspace())  # 是否有空空格
    
    names = ['alex', 'jack', 'rain']
    str_name = '|'.join(names)
    print(str_name)  # alex|jack|rain 把列表变成字符串后拼接字符串
    
    print(s.ljust(20, '-'))  # Hello World---------  s在左边
    print(s.rjust(20, '-'))  # ---------Hello World  s在右边
    
    print(s.upper())  # HELLO WORLD 大写
    
    s4 = '  
    hello world
    	   '
    print(s4.strip())  # hello world 去掉两边的空格、换行,tab. 还有lstrip()和rstrip()
    
    s5 = 'anvasd'
    s6 = '12%$#k'
    table = str.maketrans(s5, s6)  # s5和s6长度必须一样 翻译成ASCII码,用来自己定义密码表
    print(table)  # {97: 36, 110: 50, 118: 37, 115: 35, 100: 107}
    print('edward'.translate(table))  # ekw$rk  根据s5,s6的对应表翻译
    
    print(s.partition('o'))  # ('Hell', 'o', ' World') 以o为中心,把别的两边分开 rpartition(),从右边开始分
    
    print(s.replace('l', 'L', 1))  # HeLlo World  只换1个
    
    print(s.split('o', 1))  # ['Hell', ' World'] 按o分,按哪个分哪个就没了  rsplit()从右边分
    
    s7 = 'a
    b
    alex
    c'
    print(s7.splitlines())  # ['a', 'b', 'alex', 'c'] 按换行分
    
    print(s.startswith('H'))  # True 以什么开始
    print(s.endswith('d'))  # True 以什么结束
    
    print(s.zfill(15))  # 0000Hello 长度变成15,不够了用0填

  • 相关阅读:
    标签的讲解
    属性分类
    LeetCode 003. 无重复字符的最长子串 双指针
    Leetcode 136. 只出现一次的数字 异或性质
    Leetcode 231. 2的幂 数学
    LeetCode 21. 合并两个有序链表
    象棋博弈资源
    acwing 343. 排序 topsort floyd 传播闭包
    Leetcode 945 使数组唯一的最小增量 贪心
    Leetcode 785 判断二分图 BFS 二分染色
  • 原文地址:https://www.cnblogs.com/lshedward/p/9917769.html
Copyright © 2011-2022 走看看