• day 7 字符串


        

    6.字符串的常见操作
    知道方向,不要去背
      1)find,index                   #查找
     2)count 和replace               #替换
     3)split                         # 分割(数据清洗)
     4)capitalize 和 title           #首字母大写
      5)startswitch endswitch         #开头结尾(上传文件名称盘判断)
      6)lower,upper                  #转换为大小写(用户输入同一格式)
      7)center ,ljust,rjust           # 居中显示(网易云歌词)
     8)strip 去除空格,
    ,	            #(数据清洗)
      9) partition,rpartition           #分割 (广播体操带队)
     10)splitlines                    # 按行
    分割
      11) isdigit isalpha  isalnum     # 注册时,必须是字母和数字的组合
     12)join                          #构建字符串
      13)format:                   #格式化输出
    浮点数判断
    type(eval("123")) == int
    type(eval("123.23")) == float

    1.num=10 和 num=“10”的区别

      numb=10 内存中占用1个字节

      num=“10“ 内存中占用3个字节 

        

       注意:c语言中  字符串末尾还有结束符

        

    2.类型转换

    In [1]: num = 100
    
    In [2]: num2 = "100"
    
    In [3]: name = alex
    
    
    ######################
    
    In [5]: int(num2)
    Out[5]: 100
    
    In [6]: str(num)
    Out[6]: '100'
    
    ######################
    In [7]: len(name)
    Out[7]: 4               #在内存占用4个字节

            

    3.字符串拼接的2种方式

    In [9]: a = "lao"
    
    In [10]: b = "wang"
    
    In [11]: c = a+b
    
    In [12]: c
    Out[12]: 'laowang'
    
    In [13]: 
    
    ########################
    In [13]: A = 10
    
    In [14]: B = 2
    
    In [15]: C = A+B
    
    In [16]: C
    Out[16]: 12
    完成结果显示
    In [18]: "===langwang==="
    Out[18]: '===langwang==='
    
    #######################             第1种方式 
    
    In [19]: e = "===" + a + b + "==="
    
    In [20]: e
    Out[20]: '===laowang==='
    
    
    #######################             第2种方式
    In [21]: f = "===%s==="%(a+b)
    
    In [22]: f
    Out[22]: '===laowang==='

    4.字符串的下标

    In [23]: name = "abcdef"   
    
    In [24]: name[0]           #0 下标
    Out[24]: 'a'         #a  元素
    
    In [25]: name[5]
    Out[25]: 'f'
    
    
    ########################  越界
    In [26]: name[6]
    ---------------------------------------------------------------------------
    IndexError                                Traceback (most recent call last)
    <ipython-input-26-b480563304b2> in <module>()
    ----> 1 name[6]
    
    IndexError: string index out of range
    
    
    
    #################   [-3][-2][-1]
    In [29]: name[len(name)-1]
    Out[29]: 'f'
    
    In [30]: name[-1]
    Out[30]: 'f'
    
    In [31]: name[-2]
    Out[31]: 'e'
    
    In [32]: name[-3]
    Out[32]: 'd'

        

     5.切片

    ####   正向切片
    In [33]: name = "abcdefABCDEF"
                               02345678910
    
    In [35]: name[2:5]         #实质 [2:5)
    Out[35]: 'cde'
     
    In [36]: name[2:6]         #实质[2:6)   就是[2:5]
    Out[36]: 'cdef'
    
    
    
    ######   反向切片
    In [33]: name = "abcdefABCDEF"
                                      -5-4-3-2-1
                               012345
    
    In [37]: name[2:-2]          #[2:              cdefgABCDEF
    Out[37]: 'cdefABCD'          #   :-2)        abcdefgABCD 
                                  #结果             cdefgABCD
     
    
    In [38]: name[2:-1]
    Out[38]: 'cdefABCDE'
    
    
    In [39]: name[2:-2]
    Out[39]: 'cdefABCD'
    
    
    In [40]: name[2:0]
    Out[40]: ''
    
    
    In [41]: name[2:]             #注意!正序全部
    Out[41]: 'cdefABCDEF'
                                                                            

      2)实质:【起始位置:终止位置:步长】

         

    In [42]: name[2:-1]
    Out[42]: 'cdefABCDE'
    
    In [43]: name[2:-1:2]
    Out[43]: 'ceACE'
    
    
    In [44]: name[2:-1:1]
    Out[44]: 'cdefABCDE'
    
    
    In [45]: name[2:-1]             #默认步长为1
    Out[45]: 'cdefABCDE'

      3)字符串的逆序(倒序)?

    In [46]: name
    Out[46]: 'abcdefABCDEF'
    
    #######     正序
    In [47]: name[0:]
    Out[47]: 'abcdefABCDEF'
    
    In [48]: name[-1:]
    Out[48]: 'F'
    
    In [49]: name[-1:0]
    Out[49]: ''
    
    ##########  倒序  (面试必考)
    
    In [50]: name[-1:0:-1]
    Out[50]: 'FEDCBAfedcb'
    
    In [51]: name[-1::-1]
    Out[51]: 'FEDCBAfedcba'
    
    In [52]: name[::-1]
    Out[52]: 'FEDCBAfedcba'

    6.字符串的常见操作

        知道方向,不要去背

      

    In [57]: my_str = "hello world python adn pythonxxxxcpp"
    
    In [59]: my_str.
    my_str.capitalize    my_str.isalnum       my_str.join          my_str.rsplit
    my_str.casefold      my_str.isalpha       my_str.ljust         my_str.rstrip
    my_str.center        my_str.isdecimal     my_str.lower         my_str.split
    my_str.count         my_str.isdigit       my_str.lstrip        my_str.splitlines
    my_str.encode        my_str.isidentifier  my_str.maketrans     my_str.startswith
    my_str.endswith      my_str.islower       my_str.partition     my_str.strip
    my_str.expandtabs    my_str.isnumeric     my_str.replace       my_str.swapcase
    my_str.find          my_str.isprintable   my_str.rfind         my_str.title
    my_str.format        my_str.isspace       my_str.rindex        my_str.translate
    my_str.format_map    my_str.istitle       my_str.rjust         my_str.upper
    my_str.index         my_str.isupper       my_str.rpartition    my_str.zfill

       

      1)find,index查找

    ##########   find
    In [60]: my_str.find("world")
    Out[60]: 6                #w的下标
    
    
    In [63]: my_str.find("python")   #从左边开始find
    Out[63]: 12
    
    In [64]: my_str.rfind("python")   #从右边开始find
    Out[64]: 23
    
    
    In [61]: my_str.find("redhat")      #没有find out 返回-1
    Out[61]: -1 
    
    
    ############# index
    In [67]: my_str.index("python")
    Out[67]: 12
    
    In [68]: my_str.rindex("python")
    Out[68]: 23
    
    
    In [66]: my_str.index("redhat")   
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-66-44374e6cd47d> in <module>()
    ----> 1 my_str.index("redhat")
    
    ValueError: substring not found                #没有找出返回异常

      2)count 和replace

     my_str = "hello world python adn pythonxxxxcpp"
    
    #########   count
    In [69]: my_str.count("python")
    Out[69]: 2
    
    In [70]: my_str.count("world")
    Out[70]: 1
    
    In [71]: my_str.count("rehdat")
    Out[71]: 0
    
    
    #########    replace
    
    In [72]: my_str.replace("world","WORLD")
    Out[72]: 'hello WORLD python adn pythonxxxxcpp'
    
    
    In [75]: my_str.replace("python","redhat",1)         #替换第1个
    Out[75]: 'hello world redhat adn pythonxxxxcpp'
    
    In [88]: my_str
    Out[88]: 'hello world python adn pythonxxxxcpp'
    
         #数字,字符串,元组   不可变类型

      3)split 分割(数据清洗)

    In [81]: my_str.split(" ")
    Out[81]: ['hello', 'world', 'python', 'adn', 'pythonxxxxcpp']  #返回list

      

      4)capitalize 和 title   首字母大写

    In [82]: my_str.capitalize()
    Out[82]: 'Hello world python adn pythonxxxxcpp'
    
    In [83]: 
    
    In [83]: my_str.title()
    Out[83]: 'Hello World Python Adn Pythonxxxxcpp'

      5)startswitch endswitch  开头结尾(上传文件名称盘判断)

    #上传文件名称的判断 
    
    In [93]: file_name
    Out[93]: 'redhat.txt'
    
    
    In [94]: file_name.endswith(".txt")
    Out[94]: True
    
    
    In [95]: file_name.startswith("redhat")
    Out[95]: True
    
     
    #  对文件内容的审查,模块    上传病毒

       

      6)lower,upper 转换为大小写(用户输入同一格式)

    In [97]: if choic == "yes":
       ....:     print("exit")
    
       ....: elif choice == "YES":
       ....:     print("exit")
       ....: elif ..
    
    
    #######   统一一种格式
    
    In [100]: choice = "Yes"
    
    In [101]: choice.lower()
    Out[101]: 'yes'
    
    In [102]: choice.upper()
    Out[102]: 'YES'

      

      7)center ,ljust,rjust  居中显示(网易云歌词)

          

    In [105]: lyric = "想要陪你一起看大海"
    
    In [106]: lyric.center(50)
    Out[106]: '                    想要陪你一起看大海                     '
    
    In [108]: lyric.ljust(50)
    Out[108]: '想要陪你一起看大海                                         '
    
    In [107]: lyric.rjust(50)
    Out[107]: '                                         想要陪你一起看大海'
        

       8)strip 去除空格, , (数据清洗)

        

    In [110]: lyric
    Out[110]: '                    想要陪你一起看大海                     '
    
    
    In [111]: lyric.lstrip()          #去除左
    ,	
    Out[111]: '想要陪你一起看大海                     '
    
    In [112]: lyric.rstrip()            #去除右
    ,	
    Out[112]: '                    想要陪你一起看大海'
    
    
    In [113]: lyric.strip()
    Out[113]: '想要陪你一起看大海'

      9) partition,rpartition  分割 (广播体操带队)

    In [114]: my_str
    Out[114]: 'hello world python adn pythonxxxxcpp'
    
    In [115]: my_str.partition("python")
    Out[115]: ('hello world ', 'python', ' adn pythonxxxxcpp')
    
    
    In [117]: my_str.rpartition("python")
    Out[117]: ('hello world python adn ', 'python', 'xxxxcpp')

      10)splitlines  按行 分割

    In [118]: my_line = "hello
    world
    xx
    yy
    zz"
    
    In [119]: print(my_line)
    hello
    world
    xx
    yy
    zz
    
    
    In [120]: my_line.splitlines()
    Out[120]: ['hello', 'world', 'xx', 'yy', 'zz']

      

      11) isdigit isalpha   isalnum  注册时,必须是字母和数字的组合

    s为字符串
    s.isalnum() 所有字符都是数字或者字母
    s.isalpha() 所有字符都是字母
    s.isdigit() 所有字符都是数字
    s.islower() 所有字符都是小写
    s.isupper() 所有字符都是大写
    s.istitle() 所有单词都是首字母大写,像标题
    s.isspace() 所有字符都是空白字符、	、
    、
    
    ###### 数字整数  isdigit
    In [12]: num = input("请输入一个选项:")
    请输入一个选项:1
    
    In [13]: if num.isdigit():
        int(num)
        print("是数字:",num)
       ....:     
    是数字: 1
    
    
    ######   字母 isalpha
    In [8]: num = input("请输入一个选项:")
    请输入一个选项:q
    
    In [9]: if num.isalpha():
        print("是字母")
        print(num)
       ...:     
    是字母
    q
    
    
    
    ##### 注册页面,必须是数字和字母的组合
    In [16]: num = "1q"
    
    In [17]: num.isdigit()
    Out[17]: False
    
    In [18]: num.isalpha()
    Out[18]: False
    
    
    In [20]: num.isalnum()          #alpha
    Out[20]: True                            #number
    
    
    #######   数字字母组合
    In [14]: num = input("请输入一个选项:")
    请输入一个选项:1q
    
    In [15]: if num.isalnum():
       ....:     print("是字母和数字",num)
       ....:     
    是字母和数字 1q

      12)join  构建字符串

    In [21]: a = ["aa","bb","cc"]
    In [22]: a
    Out[22]: ['aa', 'bb', 'cc']
    
    
    
    In [23]: b = "="
    
    In [24]: b.join(a)
    Out[24]: 'aa=bb=cc'
    
    
    
    In [25]: b = " "
    
    In [26]: b.join(a)
    Out[26]: 'aa bb cc'

      13)format:格式化输出

    # 格式化输出1
    >>> s = 'myname is {0}, i am {1}'
    >>>
    >>> s.format('alxe',22)
    'myname is alxe, i am 22'
    
    # 格式化输出2
    >>> s = 'myname is {name}, i am {age}'
    
    >>> s.format('alxe',22)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 'name'
    >>>
    >>> s.format(name='alex',age=22)
    'myname is alex, i am 22'

      

    7.面试题:给定一个字符串Str,  去除所有的  空格和' ',返回字符串

    • (面试题)给定一个字符串Str,  去除所有的  空格和' ',返回字符串

        

    ####### 题目
    In [27]: test_str = "hello world nihao 	 heihie 	 woshi nide	python 
     ll
    du"
    
    
    ######  错误做法
    In [30]: test_str.split(" ")
    Out[30]: 
    ['hello',
     'world',
     'nihao',
     '	',
     'heihie',
     '	',
     'woshi',
     'nide	python',
     '
    ',
     'll
    du']
    
    
    In [32]: test_str.splitlines()
    Out[32]: ['hello world nihao 	 heihie 	 woshi nide	python ', ' ll', 'du']
    
    In [33]: test_str.split("	")
    Out[33]: ['hello world nihao ', ' heihie ', ' woshi nide', 'python 
     ll
    du']
    
    
    In [34]: test_str.split("
    ")
    Out[34]: ['hello world nihao 	 heihie 	 woshi nide	python ', ' ll', 'du']
    
    In [35]: test_str.split("	
    ")
    Out[35]: ['hello world nihao 	 heihie 	 woshi nide	python 
     ll
    du']
    
    
    
    #####  正确做法
    In [36]: test_str.split()
    Out[36]: ['hello', 'world', 'nihao', 'heihie', 'woshi', 'nide', 'python', 'll', 'du']
    #######  字符串拼接
    
    In [37]: result = test_str.split()
    
    In [39]: " ".join(result)
    Out[39]: 'hello world nihao heihie woshi nide python ll du'
    
    In [38]: "".join(result)
    Out[38]: 'helloworldnihaoheihiewoshinidepythonlldu'
  • 相关阅读:
    Nginx虚拟主机配置实例(Nginx VirtualHost Example)
    考研机试 33.密码翻译
    考研机试 26.10进制 VS 2进制
    考研机试 25.剩下的树
    input默认值设置
    http 304优化,了解客户端缓存
    (转)8款在线CSS优化工具/组织和压缩CSS
    照片从模糊到清晰的渐变加载显示方法
    JS压缩工具Closure Compiler 和 YUICompressor的对比
    【转】高性能web开发 如何加载JS,JS应该放在什么位置?
  • 原文地址:https://www.cnblogs.com/venicid/p/7843602.html
Copyright © 2020-2023  润新知