zoukankan      html  css  js  c++  java
  • 数字与字符串的‘魔法’方法

    一、数字(int)

    • int()

    将字符串转换为数字

    1 a = "123"
    2 print(type(a),a)
    3 #结果:<class 'str'> 123
    4 b = int(a)
    5 print(type(b),b)
    6 #结果为:<class 'int'> 123

    将16进制以10进制转换并输出

    1 num = '0011'
    2 v = int(num,base=16)
    3 print(v)
    4 #结果为:17
    • bit_lenght()
     1 # 当前数字的二进制,至少用n位表示
     2 age = 3
     3 #3==》11
     4 r = age.bit_length()
     5 print(r)
     6 #结果:2
     7 new_age = 4
     8 #4==》100
     9 new_r = new_age.bit_length()
    10 print(new_r)
    11 #结果:3

    二、字符串(str)

    • capitalize()
    1 #首字母大写
    2 test = 'soLitary'
    3 v = test.capitalize()
    4 print(v)
    5 #结果:Solitary
    • casefold()     
    • lower()
    1 #所有变小写,casefold更牛逼,很多未知的对相应变小写
    2 test = 'soLitary'
    3 v1 = test.casefold()
    4 #结果:solitary
    5 print(v1)
    6 v2 = test.lower()
    7 print(v2)
    8 #结果:solitary
    • center()  
    • ljust()  
    • rjust()    
    • zfill()
     1 '''设置宽度,并将内容居中;20 代指总长度;*  空白未知填充,一个字符,可有可无'''
     2 test = 'soLitary'
     3 v1 = test.center(20,'')
     4 print(v1)
     5 #结果:爱爱爱爱爱爱soLitary爱爱爱爱爱爱
     6 v2 = test.ljust(20,'*')
     7 print(v2)
     8 #结果:soLitary************
     9 v3 = test.rjust(20,'*')
    10 print(v3)
    11 #结果:************soLitary
    12 v4 = test.zfill(20)
    13 print(v4)
    14 #结果:000000000000soLitary
    • count()
    1 #去字符串中寻找,寻找子序列的出现次数
    2 test = 'soLitary'
    3 v1 = test.count('it')
    4 print(v1)
    5 #结果:1
    6 v2 = test.count('it',5,6)
    7 #在索引值为5,6里面去找
    8 print(v2)
    9 #结果:0
    •  endswith()
    •  startswith()
    1 #以什么什么结尾
    2 #以什么什么开始
    3 test = 'soLitary'
    4 v1 = test.endswith('ry')
    5 print(v1)
    6 #结果:True
    7 v2 = test.startswith('so')
    8 print(v2)
    9 #结果:True
    • expandtabs()
    1 #找制表符(/t),断句20
    2 test = "username	email	password
    laiying	ying@q.com	123
    laiying	ying@q.com	123
    laiying	ying@q.com	123"
    3 v = test.expandtabs(20)
    4 print(v)
    5 #结果:
    6 '''username            email               password
    7    laiying             ying@q.com          123
    8    laiying             ying@q.com          123
    9    laiying             ying@q.com          123'''
    • find()
    1 #从开始往后找,找到第一个之后,获取其位置,未找到 -1
    2 test = 'soLitary'
    3 v = test.find('so')
    4 print(v)
    5 #结果:0
    • index()
     1 #index找不到,报错   忽略
     2 test = 'soLitary'
     3 v = test.index('6')
     4 print(v)
     5 '''Traceback (most recent call last):
     6   File "F:pycharmPyCharm 2017.3.3helperspydevpydev_run_in_console.py", line 53, in run_file
     7     pydev_imports.execfile(file, globals, locals)  # execute the script
     8   File "F:pycharmPyCharm 2017.3.3helperspydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
     9     exec(compile(contents+"
    ", file, 'exec'), glob, loc)
    10   File "F:/pycharm/pycharm_file/test.py", line 2, in <module>
    11     v = test.index('6')
    12 ValueError: substring not found'''
    • format()
     1 #格式化,将一个字符串中的占位符替换为指定的值
     2 test1 = 'i am {name}, age {a}'
     3 print(test1)
     4 #结果:i am {name}, age {a}
     5 v1 = test1.format(name='soLitary',a=19)
     6 print(v1)
     7 #结果:i am soLitary, age 19
     8 test2 = 'i am {0}, age {1}'
     9 print(test2)
    10 #结果:i am {0}, age {1}
    11 v2 = test2.format('soLitary',19)
    12 print(v2)
    13 #结果:i am soLitary, age 19
    14 
    15 
    16 
    17 
    18 #格式化,传入的值 {"name": 'alex', "a": 19}
    19 test3 = 'i am {name}, age {a}'
    20 print(test3)
    21 #结果:i am {name}, age {a}
    22 v3 = test3.format(name='df',a=10)
    23 print(v3)
    24 #结果:i am df, age 10
    25 v4 = test3.format_map({"name": 'soLitary', "a": 19})
    26 print(v4)
    27 #结果:i am soLitary, age 19
    • isalnum()
    1 #字符串中是否只包含 字母和数字
    2 test = '123'
    3 v = test.isalnum()
    4 print(v)
    5 #结果:True
    • isalpha()
    1 #是否是字母、汉字
    2 test = "as2df"
    3 v = test.isalpha()
    4 print(v)
    5 #结果:False
    • isdecimal()
    • isdigit()
    • isnumeric()
    1 #当前输入是否是数字,一个比一个牛逼
    2 test = ""
    3 v1 = test.isdecimal()
    4 v2 = test.isdigit()
    5 v3 = test.isnumeric()
    • isprintable()
    1 #主要看里面有没有/t,/n
    2 # 	   制表符
    3 # 
       换行
    4 test = "oiuas	dfkj"
    5 v = test.isprintable()
    6 print(v)
    7 #结果:False
    • isspace()
    1 #判断是否全部是空格
    2 test = ""
    3 v = test.isspace()
    4 print(v)
    5 #结果:False
    • istitle()  
    • title()
     1 #判断是否是标题
     2 test = "Return True if all cased characters in S are uppercase and there is"
     3 v1 = test.istitle()
     4 print(v1)
     5 #结果:False
     6 v2 = test.title()
     7 print(v2)
     8 #结果:Return True If All Cased Characters In S Are Uppercase And There Is
     9 v3 = v2.istitle()
    10 print(v3)
    11 #结果:True
    • join()
    1 #将字符串中的每一个元素按照指定分隔符进行拼接
    2 test = "你是我的小宝贝"
    3 print(test)
    4 #结果:你是我的小宝贝
    5 t = ' '
    6 v = t.join(test)
    7 print(v)
    8 #结果:你 是 我 的 小 宝 贝
    • islower()/lower()                          
    • isupper()/upper()
     1 #判断是否全部是大小写 和 转换为大小写
     2 test = "soLitary"
     3 v1 = test.islower()
     4 v2 = test.lower()
     5 print(v1, v2)
     6 #结果:False solitary
     7 v3 = test.isupper()
     8 v4 = test.upper()
     9 print(v3,v4)
    10 #结果:False SOLITARY
    • lstrip()
    • rstrip()
    • strip()
    1 #移除指定字符串
    2 test = "xa"
    3 v1 = test.lstrip('xa')
    4 v2 = test.rstrip('9lexxexa')
    5 #有限最多匹配,子序列
    6 v3 = test.strip('xa')
    7 print(v1,v2,v3)
    8 #结果:          
    • translate()
    1 #对应关系替换
    2 test =  "aeiou"
    3 test1 = "12345"
    4 v = "asidufkasd;fiuadkf;adfkjalsdjf"
    5 m = str.maketrans(test, test1)
    6 new_v = v.translate(m)
    7 print(new_v)
    8 #结果:1s3d5fk1sd;f351dkf;1dfkj1lsdjf
    • partition()
    • rpartition
    1 #分割,分割的部分也显示输出
    2 test = "testasdsddfg"
    3 v1 = test.partition('s')
    4 print(v1)
    5 #结果:('te', 's', 'tasdsddfg')
    6 v2 = test.rpartition('s')
    7 print(v2)
    8 #结果:('testasd', 's', 'ddfg')
    • split()
    • rsplit()
    1 #分割,分割部分不显示输出
    2 test = "testasdsddfg"
    3 v1 = test.split('s',2)
    4 print(v1)
    5 #结果:['te', 'ta', 'dsddfg']
    6 v2 = test.rsplit('s',2)
    7 print(v2)
    8 #结果:['testa', 'd', 'ddfg']
    • splitlines()
    1 #分割,只能根据/n
    2 test = "asdfadfasdf
    asdfasdf
    adfasdf"
    3 v = test.splitlines(False) 
    4 #true,false:是否保留换行
    5 print(v)
    6 #结果:['asdfadfasdf', 'asdfasdf', 'adfasdf']
    • swapcase()
    1 #大小写转换
    2 test = 'soLiTary'
    3 v = test.swapcase()
    4 print(v)
    5 #结果:SOlItARY
    • isidentifier()
    1 #判断数字、字母、下划线:标识符
    2 a = "de"
    3 v = a.isidentifier()
    4 print(v)
    5 #结果:True
    • replace()
    1 #将指定字符串替换为指定字符串
    2 test = "alexalexalex"
    3 v1 = test.replace("ex",'bbb')
    4 print(v1)
    5 #结果:albbbalbbbalbbb
    6 v2 = test.replace("ex",'bbb',2)
    7 print(v2)
    8 #结果:albbbalbbbalex

    索引,下标,获取字符串中的某一个字符

    v = test[3]
    

    切片 

    v = test[0:-1]
    #0<=       <-1
    

    获取长度 

    v = len(test)

    ###################### 7个基本魔法 ######################

    • join
    • split
    • find
    • strip
    • upper
    • lower
    • replace

    ###################### 1个深灰魔法 ######################

    • 字符串一旦创建,不可修改
    • 一旦修改或者拼接,都会造成重新生成字符串
    #例:
    name = "zhengjianwen"
    age = "18"
    
    info = name + age
    

    内存不可能会在原有的字符串内进行修改,那样做会耗费很大内存,它只会去创建一个新的字符串  

  • 相关阅读:
    【思考题】任意长度有理数乘法运算
    【排序】表插入排序算法(C语言版)
    JAVA中的反射
    JAVA中关于日期的最常见的操作
    Hibernate:基于HQL实现数据查询
    Hibernate与Mybatis对比
    使用idea实现SSM框架整合
    基于maven搭建hibernate运行环境
    MYSQL中的存储过程
    MySQL 索引
  • 原文地址:https://www.cnblogs.com/dsynb/p/9059611.html
Copyright © 2011-2022 走看看