资讯详情

Python中字符串的超细解析

一、python中间字符串:

什么是字符串?

    在python中字符串是基本数据类型,     不可变的字符序列 

1.代码如下:

示例:

 a='hello,hello' print(a.index('lo')) print(a.find('lo')) print(a.rindex('lo')) print(a.rfind('lo')) print(字符串大小写转换-) print("-----------upper小写转化为大写------------") a1='hello world' a2=a1.upper() print(a1) print(a2) print("----------------lower将大写转化为小写-------------------------") a3="HELLO WORLD" a4=a3.lower() print(a3) print(a4) print('---------------swapcase把大写变成小写,把小写变成大写-') a5="HELLO" a6=a5.swapcase() print(a5) print(a6) print('------------------------') a7='hello' a8=a7.swapcase() print(a7) print(a8) print('-------------capitalize():把第一个字符转换成大写,把其余字符转换成小写--------------------') q1="hello WORLD" q2=q1.capitalize() print(q1) print(q2) print('-------title-----------------') q3='hELLO' q4=q3.title() print(q3) print(q4) print('------------字符串的对齐方式--------------') q5='helloworld' print('---------居中对齐------------') print(q5.center(20,'*')) print('------------左对齐---------') print(q5.ljust(20,'*')) print('-----------右对齐----------') print(q5.rjust(20,"*")) print('-----------右对齐,用0填充----------') print(q5.zfill(20)) print('----------字符串的分割------------------') print('--------从左边开始分割-----------') s1='hello|world|python' print(s1.split(sep='|',maxsplit=1)) print('-----------从右边开始分割------------------') print(s1.rsplit(sep="|",maxsplit=1)) print('---------------字符串的判断----------------------') s2="hello,world" print('1.',s2.isidentifier()) print('2.','hello'.isidentifier()) print('3.','张三_'.isidentifier()) print('4.','张三_123'.isidentifier()) print('5.','\t'.isspace()) print('6.','abc'.isalpha()) print('7.','张三'.isalpha()) print('8.','张三1'.isalpha()) print('9.','123'.isdecimal()) print('10.','123四'.isdecimal()) print('11.','123'.isnumeric()) print('12.','123四'.isnumeric()) print('13.','abc111'.isalnum()) print('14.','张三111'.isalnum()) print('15.','abc111!!!'.isalnum()) print('--------------字符串的替换----------------------') s3='hello,python' print(s3) print(s3.replace('python','java')) s4='hello,python,python,python' print(s4) print(s4.replace('python','java',2)) print('------------字符串的合并------------------------------') lst=['hello','world','python'] print('|'.join(lst)) print("".join(lst)) yuanzu=("hello",'world') print(''.join(yuanzu)) print("*".join("python")) print('apple'>'app') print('apple'>'banana') print(ord("a"),ord("b")) print(chr(97),chr(98)) print('------------切片--------------------') z1='hello,world' z2=z1[:5] z3=z1[6:] z4='!' newz=z2+z4+z3 print(z2) print(z3) print(newz) print('---------字符串的格式化-----------------') print('%作为占位符') name='张三' age=18 print('我叫%s,今年%d岁'%(name,age)) print('{}作为占位符') print('我叫{0},今年{1}岁'.format(name,age)) print('f-string作为占位符') print(f'我叫{name},今年{age}岁') print('------------字符串的编码----------------------') z5='天涯共此时' print(z5.encode(encoding='GBK'))#在GBK中:一个中文站两个字节 print(z5.encode(encoding='UTF-8'))#在UTF-8中:一个中文站三个字节 print('-------------字符串的解码-----------') #byte代表就是一个二进制数据(字节类型的数据) byte=z5.encode(encoding="GBK") print(byte.decode(encoding="GBK")) 

2.运行结果:

示例:

3
3
9
9
-----------字符串大小写转换-------------------
-----------upper小写转换成大写------------
hello world
HELLO WORLD
----------------lower大写转换成小写-------------------------
HELLO WORLD
hello world
---------------swapcase将大写转换成小写,将小写转换成大写------------------
HELLO
hello
------------------------
hello
HELLO
-------------capitalize():把第一个字符转换成大写,把其余字符转换成小写--------------------
hello WORLD
Hello world
-------title-----------------
hELLO
Hello
------------字符串的对齐方式--------------
---------居中对齐------------
*****helloworld*****
------------左对齐---------
helloworld**********
-----------右对齐----------
**********helloworld
-----------右对齐,用0填充----------
0000000000helloworld
----------字符串的分割------------------
--------从左边开始分割-----------
['hello', 'world|python']
-----------从右边开始分割------------------
['hello|world', 'python']
---------------字符串的判断----------------------
1. False
2. True
3. True
4. True
5. True
6. True
7. True
8. False
9. True
10. False
11. True
12. True
13. True
14. True
15. False
--------------字符串的替换----------------------
hello,python
hello,java
hello,python,python,python
hello,java,java,python
------------字符串的合并------------------------------
hello|world|python
helloworldpython
helloworld
p*y*t*h*o*n
True
False
97 98
a b
------------切片--------------------
hello
world
hello!world
---------字符串的格式化-----------------
%作为占位符
我叫张三,今年18岁
{ 
        }作为占位符
我叫张三,今年18岁
f-string作为占位符
我叫张三,今年18岁
------------字符串的编码----------------------
b'\xcc\xec\xd1\xc4\xb9\xb2\xb4\xcb\xca\xb1'
b'\xe5\xa4\xa9\xe6\xb6\xaf\xe5\x85\xb1\xe6\xad\xa4\xe6\x97\xb6'
-------------字符串的解码-----------
天涯共此时

进程已结束,退出代码为 0



总结:

提示:这里对文章进行总结:

         字符串的驻留机制:
       仅保存一份相同且不可变字符串的方法,不能的值被存放在字符串的驻留池中,
       python的驻留机制对相同的字符串只保留一份拷贝,后创建相同字符串时,
       不会开辟新空间,而是把该字符串的地址赋给新创建的变量
                a='python'
                b=“python”
                c='''python'''
                       a b c ==》python

        滞留机制的几种情况(交互模式)
             字符串的长度为0或者1时
             符合标识符的字符串
             字符串只在编译时进行驻留,而非运行时
             [-5,256]之间的整数数字
                          sys中的intern方法强制2个字符串指向同一个对象
                          pycharm对字符串进行了优化处理
        字符串驻留机制的优缺点:
                 当需要值相同的字符串时,可以直接从字符串池里拿出来使用,避免频繁的创建和销毁,
                 提升效率和节约内存,因此拼接字符串和修改字符串是会比较影响性能的

                 在需要进行字符串拼接时建议使用 str类型的join方法,而非+
                 因为join()方法是先计算出所有字符串中的长度,然后在拷贝,只new一次对象
                 效果要比+效率高


        字符串的常用操作:
          查询方法:
            index():查找子串substr第一次出现的位置,如果查找的子串不存在时,则抛出valueerror
            rindex():查找子串substr最后一次出现的位置,如果查找的子串不存在,则抛出valueerror
            find():查找子串substr第一次出现的位置,如果查找的子串不存在时,则返回-1
            rfind():查找子串substr最后一次出现的位置,如果查找的子串不存在,则返回-1

        大小写转换操作:
             upper():把字符串中所有字符都转成大写字母
             lower():把字符串中所有字符都转成小写字母
             swapcase():把字符串中所有大写字母转成小写字母,把所有小写字母转成大写字母
             capitalize():把第一个字符转换成大写,把其余字符转换成小写
             title():把每个单词的第一个字符转换为大写,把每个单词的剩余字符转换成小写

        字符串对齐:
              center():居中对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,
                       默认是空格,如果设置宽度小于实际宽度则返回原字符串
              ljust():左对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,
                       默认是空格,如果设置宽度小于实际宽度则返回原字符串
              rjust():右对齐,第一个参数指定宽度,第二个参数指定填充符,第二个参数是可选的,
                       默认是空格,如果设置宽度小于实际宽度则返回原字符串
              zfill():右对齐,左边用0填充,该方法只接受一个参数,用于指定字符串的宽度,
                      如果指定的宽度小于等于字符串的长度,返回字符串本身

        字符串的分割:
                 split():
                        从字符串的左边开始分割,默认的分割字符串是空格字符串,返回的值是一个列表
                        以通过参数sep指定分割字符串是的分隔符
                        通过参数maxsplit指定凤娥字符串时的最大分割次数,在经过最大分割后,
                              剩余的子串会单独作为一部分
                 rsolit():从字符串的右边开始分割,默认的分割字符串是空格字符串,返回的值是一个列表
                        以通过参数sep指定分割字符串是的分隔符
                        通过参数maxsplit指定凤娥字符串时的最大分割次数,在经过最大分割后,
                              剩余的子串会单独作为一部分

        字符串的判断:
               isideentifier():判断指定字符串是不是合法的标识符
               isspace():判断指定字符串是否全部由空白字符组成(回车,换行,水平制表符)
               isalpha():判断指定字符串是否全部由字母组成
               isdecimal():判断指定字符串是否全部由十进制的数字组成
               isnumeric():判断指定字符串是否全部由字母组成
               isalnum():判断指定字符串是否全部由字母和数字组成

        字符串的替换  合并:
               replace():第一个参数指定被替换的子串,第二个参数指定替换字串的字符串,
                         该方法返回替换后得到的字符串,替换前的字符串不发生变化,
                         调用该方法时,可以通过第三个参数指定最大替换次数
               join():将列表或元组中的字符串合并成一个字符串

        字符串的比较:
            运算符:>   >=  <=    ==    !=
            比较规则:首先比较两个字符串中的第一个字符,如果相等则继续比较下一个字符,依次比较下去
                    直到俩个字符串中的字符不相等时,其比较结果就是两个字符串的比较结果,
                    两个字符串中的所有后续字符将不在被比较
            比较原理:两个字符进行比较时,比较的是其ordinal value(原始值)
                    调用内置函数ord可以得到指定字符的ordinal value
                    与内置函数ord对应的是内置函数chr,
                    调用内置函数chr时指定ordinal value可以得到其对应的字符
                      注意:
                             == : 比较的value
                             is : 比较的id

        字符串的切片:
                字符串是不可变类型:
                         不具备增  删  改等操作
                         切片操作将产生新的对象

        字符串的格式化:
                 %作为占位符:
                    %s         字符串
                    %d/%i       整数
                    %f          浮点数
                 {}作为占位符:
                         {0}      format(name)

        字符串的编码转换
          为什么需要字符串的编码转换:
            a计算机将str在内存中以Unicode表示=编码=》byte字节传输=解码=>b计算机显示
          编码与解码:
              编码:将字符串转换成二进制数据byte
              解码:将byte类型的数据转换成字符串类型

标签: 低压并联电容器串接xd1电抗器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台