zoukankan      html  css  js  c++  java
  • day3:数据类型 str

    1,int 一个数字占用的bit数目

    i = 2
    print(i.bit_length())
    i = 3
    print(i.bit_length())
    i = 5
    print(i.bit_length())
    
    运行结果:
    2
    2
    3
    View Code

    2,int和str互转,注意str转化为int是,str内容必须是数字

    3,while true和while 1

    while True:
        pass
    #while 1的效率要高一点
    while 1:
        pass
    View Code

    4,判断字符串为空

    s = input("plese input")
    if s:
        pass
    else:
        print("你输入的字符串为空,请重新输入。")
    View Code

    5,字符串索引和切片,顾头不顾尾,和range一样

    s = "ABCDEFGHKL"
    print(s[-1])
    print(s[-2])
    print(s[0:4])
    print(s[0:-1])
    print(s[0:])
    print(s[:])
    print("------------------------------")
    print(s[0:5:2])
    print(s[4:0:-1]) #这里不可以写成s[0:4:-1], 顾头不顾尾所以0那个位置是打不出来的
    print(s[4::-1]) # 规范写法,两个冒号之间没有空格
    
    print("--------------------------------")
    print(s[-1::-1])
    print(s[::-1])
    
    运行结果:
    L
    K
    ABCD
    ABCDEFGHK
    ABCDEFGHKL
    ABCDEFGHKL
    ------------------------------
    ACE
    EDCB
    EDCBA
    --------------------------------
    LKHGFEDCBA
    LKHGFEDCBA
    View Code

    6,首字母大写

    s = "lisa is funny"
    s1 =s.capitalize() #首字母大写,另外新字符串和原来的字符串没有关系
    print(s1)
    运行结果:Lisa is funny

    7,不区分大小写

    s = "FgjKl"
    s_str = input("please input:")
    if s.lower()==s_str.lower():  #也可以同时转换为大写
        print("验证成功")
    else:
        print("请重新输入")
    
    运行结果:
    please input:fgjkl
    验证成功

    8,字符串翻转,首字母大写

    s = "lisa is funny,HOHO"
    # 大小写翻转
    s3 = s.swapcase()
    print(s3)
    
    # 所有单词首字母大写
    s4 = s.title()
    print(s4)
    
    s5 = "lisa*is4funny,-HOHO9haha"
    s6 = s5.title()
    print(s6)
    
    #注意:每个隔开的单词,首字母大写,被字符和数字隔开都算,都是大写的单词要变成只是首字符大写
    运行结果:
    LISA IS FUNNY,hoho
    Lisa Is Funny,Hoho
    Lisa*Is4Funny,-Hoho9Haha

    9,居中空白填充,或者用其他字符填充,输入函数后,如果右侧半个括号显示黄色,说明你少输入参数了。

    s7 = 'center'
    s8 = s7.center(20) #总长20,s7居中,两边用空白填充,默认为空白
    print(s8)
    s9 = s7.center(20,"#") #两边用#号填充
    print(s9)
    
    运行结果:
           center       
    #######center#######

    10,展开字符串中的tab键,tab键前面的字符串不足8个则补足为8个,超过8个不足16个,补足为16个,每次补足为8的倍数

    s10 = 'left	right'
    s11 = s10.expandtabs()
    print(s11)
    运行结果:
    left    right

    11,公用方法len

    12, 查找字符,find和index,给出的都是找到位置的index,但是index函数找不到的时候会崩溃,但是find会给出-1,查找区分大小写,所以首选find,如果字符串中有多个匹配字符,返回的是第一个,可以查找一个或者多个字符

    13,去除空格strip 左侧lstrip,右侧rstip,多用在用户输入用户名加入了空格的情况

    s12 = "     strip      "
    s13 = s12.strip()
    s14 = s12.lstrip()
    s15 = s12.rstrip()
    print(s13)
    print(s14)
    print(s15)
    
    print("-------------------------------")
    
    s16 = "********strip&&&&&&&&&&"
    s17 = s16.strip('*')
    print(s17)
    s18 = s16.strip('&')
    print(s18)
    s19 = s16.strip("*&")
    print(s19)
    
    运行结果:
    strip
    strip      
         strip
    -------------------------------
    strip&&&&&&&&&&
    ********strip
    strip

    14,统计字符串中字符出现的次数count,也可以切片寻找

    s = "lilililisa is funny,HOHO"
    s20 = s.count("li")
    print(s20)
    
    运行结果:
    4
    s = "lilililisa is funny,HOHO"
    s20 = s.count("li",1,6)
    print(s20)
    
    运行结果:
    2
    s = "lilililisa is funny,HOHO"
    # 只有一个参数默认从4到末尾切片
    s20 = s.count("li",4)
    print(s20)
    
    运行结果:
    2

    15,字符串拆分split,注意被拆分的字符就不存在了,字符串转换为列表的非常好的方法

    s = "lilia//lilisa is ;iafunny,a==HOHO"
    # s20 = s.count("li")
    # print(s20)
    
    s21 = s.split() # 不指定的话就是空格
    print(s21)
    
    s22 = s.split("a")
    print(s22)
    s23 = s.split("ia")
    print(s23)
    
    运行结果:
    ['lilia//lilisa', 'is', ';iafunny,a==HOHO']
    ['lili', '//lilis', ' is ;i', 'funny,', '==HOHO']
    ['lil', '//lilisa is ;', 'funny,a==HOHO']

    16,格式化输出有两种方式,第一种是%d %s这种,另外一种是format函数,format有三种玩法

    msg="my name is {}, i am {}, my height is {},again,my name is {}".format("lisa",22,165,"lisa")
    print(msg)
    
    msg="my name is {0}, i am {1}, my height is {2},again,my name is {0}".format("lisa",22,165,)
    print(msg)
    
    msg="my name is {name}, i am {age}, my height is {height},again,my name is {name}".format(name="lisa",age=22,height=165,)
    print(msg)
    
    运行结果:
    my name is lisa, i am 22, my height is 165,again,my name is lisa
    my name is lisa, i am 22, my height is 165,again,my name is lisa
    my name is lisa, i am 22, my height is 165,again,my name is lisa

    17,字符串替换replace,默认是全部替换,也可以指定第三个参数,替换几个

    s = "lisa is funny lisa is funny lisa is funny lisa is funny lisa is funny "
    s2 = s.replace("lisa","lily")
    print(s2)
    
    运行结果:
    lily is funny lily is funny lily is funny lily is funny lily is funny 

    18,in 循环输出每个字符,或者是判断某个字符是否在字符串内,一般用来屏蔽敏感字符

    s = "lisa is funny"
    for i in s:  #i 可以替换为j index 等
        print(i)
    
    s = "lisa is fucking funny" # 敏感词类似苍井空啦,fuck ,damn啥的
    if "fucking" in s:
        print("您的输入有敏感词。。。。")
    
    运行结果:
    l
    i
    s
    a
     
    i
    s
     
    f
    u
    n
    n
    y
    您的输入有敏感词。。。。

     19,是否已某个字符开头或者结尾,startswith endswith,比较简单,不再举例,也可以进行切片操作

  • 相关阅读:
    HDU 1075 What Are You Talking About(字典树)
    HDU 1075 What Are You Talking About (stl之map映射)
    HDU 1247 Hat’s Words(字典树活用)
    字典树HihoCoder
    HDU 1277全文检索(字典树)
    HDU 3294 Girls' research(manachar模板题)
    HDU 3294 Girls' research(manachar模板题)
    HDU 4763 Theme Section(KMP灵活应用)
    Ordering Tasks UVA
    Abbott's Revenge UVA
  • 原文地址:https://www.cnblogs.com/lisa-blog/p/10014706.html
Copyright © 2011-2022 走看看