• 三, 字符串


    字符串的基本格式

      在python中,被两个 ' , '' , ''' 括起来的数据都是字符串

      python中的字符串默认使用unicode进行储存。所以,在保存大量字符串的时候记得先转换成bytes类型再进行储存。


    转义模式:

      如果想在字符串中表示''和""字符,就需要用到转义模式,表示对后面的命令符进行转义,转义为原本的字符字面意思。

      '你好,‘探险家’’,就能表示原始字符串的含义,而不发生报错。

      同时,如果想表达符号,而不是转义符号,也需要对进行转义。

      我们可以使用\表示一个符号的字面意思。

      避开转义:

        如果在字符串中包含英文的'和"字符,python默认将其翻译成为是字符串的范围标志,两个''""中间的就表达为字符串。

        但是如果想在字符串中包含'"这两个符号,可以交替使用这两个符号,进行精确表达字符串的内容:

        例如:"Hello,I'm Python!"

        注意,如果使用print将他们打印出来的话,那么他们将不再包含两端的""

        但是如果只是将他们赋值再变量中,那么调用该变量将仍然显示""来表示该变量是一个字符串!

      简单转义模式:

        如果在一个字符串中想要表达多组''和""的话,就需要用到,也就是反斜杠的转义!

        例如:句子"I'm going home!",as he said.这句话,如果要在python中准确地表达的话,可以这样写:

        ""I'm going home!", as he said."

        这里请注意,我们将字符串两端的范围标识符设置为",所以句子内所有需要表达为原始含义的"都要在前面加一个,来

        进行转义,但是并不是所有的字符都需要进行转义,这里的'因为和""不冲突,而无需进行转义!

      自身转义:
        但是既然在字符串中用作于对其后的字符进行功能性转义的话,那么如果我们仍然需要在字符串中添加符号该怎么办?

        可以使用\来表示原始含义的

        例如:www.baidu.comasdasdasdasd在python字符串中可以表达为:

        'www.baidu.com\asdasd\asdasd'

      原始字符串转义:

        字符串除了以上说道的简单字符串功能以 外,还包含一些特殊的字符串模式:

        长字符串:

        以'''"""开头,并以'''"""结尾的字符串,都是长字符串,

        在长字符串中,我们可以使用回车后进行自然换行。

        原始字符串:在字符串开头加上r就可以了。

        原始字符串意在使句子中的变回原始的字面意思。而不是转义符号!

        需要注意的是,原始字符串仅作用于

        同时注意,如果字符串,表达式或者语句在句尾加了一个\,就表示不换行,python表达式句末默认天剑 ,也就是换行表达式,

        如果我们使用但是什么都不加的话,就表示源码换行,但是实际上不需要换行,仅仅是为了更好地编辑源码!

        可以使用函数string()和repr()对普通字符串和原始字符串之间进行转换!

    字符串的运算、索引和切片:

      字符串的运算:

        注意:字符串是一种不可变的数据结构,所以任何的切片赋值都是不合法的。所以不支持赋值运算

        python支持字符串之间的相加!这会将两个字符串拼接在一起!

        print中可以使用,将两个字符串隔开的形式,但是字符串之间会多一个空格进行显示。

        但是直接赋值中如果将两个字符串用逗号隔开,直接赋给一个变量的话,那么他们将以元组的方式进行储存。

        也可以使用+号的形式将两个字符串相加,那么他们将返回一个合并之后的字符串!并且中间不会保留一个空格! 

        索引、切片:同列表切片方法!

    字符串的操作:

      s1 = s.capitalize()          #首字母大写

      s2 = s.upper()             #全部大写

      s2_1 = s.lower()            #全部小写(注意以上3个都不修改原始字符串格式。必须先将修改的值进行保存的!)

      s3 = s.swapcase()        #大小写翻转

      s4 = s.title()              #每个隔开的字符串首字母大写(用特殊字符和数字隔开的字符串)

      s5 = s.center(宽长度,填充物)    #让该字符串在指定宽度下,用指定填充物进行居中设置!

      s6 = s.expandtabs()        #会在 处替换为一个table键,意思是可以使用制表符?运行中报错!

      s7 = s.startswith()         #判断是否是以什么开头的

      s8 = s.find('W',3,10)           #找到'W'的索引位置,可以设置切片范围,找到后返回索引数字,找不到得到话返回-1。与方法index功能几乎一样,但是如果找不到的话,就会报错!

      s9 = ['1','2','3']

      '+'.join(s9)            #将某个隔字符号加入到某个列表中,合成一个字符串!

      s10 = '1+2+3+4+5'

      s10.split(要将之分隔的符号)   #join的逆向运算,将某字符串中的某隔字符进行抽取,并将其余部分分解成为一个列表!

      s11 = '$#@你好$#@'

      s11.strip()              #可以将字符串两端的特殊符号进行剥离,在用户登录的时候可以使用这一功能!

      s11.rstrip()            #rstrip只剥离右边的字符,lstrip()只剥离左边的字符。

      s11.replace('你好','呢浩')           #将指定字符串替换为另一个指定的字符串!

      s12 = '你好,肿瘤君'

      table = str.maketrans('你君','拟囧')

      s12.translate(table)       #针对某种转换表,对句子中的单个或多个的字符进行批量替换!在此之前,需要使用str.maketrans。两个同时使用,可以达到高级replace的效果。生成转换表,之后再对转换表调用translate方法!

      s13.count(要计数的字符串)    #可以对指定字符串在整体字符串中出现的次数进行计数!也可以规定计数的切片位置!

      其他:.isalnum.isalpha.isdigit    #都返回布尔值

      s14.isspace()          #如果字符串中如果全部是空格,至少包含一个的话,就返回真值。

      3,公共方法(可以在字符串、列表、元组和字典中都可以使用的方法)

        s= s.len() #计算长度,返回字符串的长度整数

        .count()         #计数功能

    字符串格式设置的方法:

      方法1:%

        % 是一个占位符,可以在想要进行替换的地方输入 % 来进行站位,之后可以在 %() 添加需要替换的变量

        例如:'''

        '''name = input('请输入姓名')

        age = input('请输入年龄')

        height = input('请输入身高')

        msg = '我的名字是%s, 今年%s岁了,身高%s'%(name,age,height)

        print(msg)

        %s表示替换的内容是字符串string

        %d表示替换的内容是数据digit'''

        %.3f表示替换的数据为精确到小数点后3位的小树float!

      

      方法2:.format()方法

        同样可以使用花括号和.format进行标记和替换,并且能够进行更加精准的设置!

        {}代表了方法1的占位符,其中,{}中若为空,则严格按照之后的.format()中的参数顺序进行替换!

        若{}中填入数字,则代表.format()括号中索引顺序进行替换!

        若{}中填入名字,则将在括号中指定参数和输入的值进行替换!

        一般情况下,以上三种指定参数的方法虽然可以一起使用,但是最好还是别这做,因为这样会让代码变得不可阅读!

        

        可以在{}中添加!格式转换符号,其后分别添加:s a表示不同的编码模式:

          !s表示字符串版本

          !r表示python的字面意思

          !a表示使用ascii码进行显示:()

          :格式设置符号:(冒号)

          :b表示将整数表示为二进制数(注意:使用二进制表示时,不能使用精度和千分位符号的设置)

          :c表示将整数视为Unicode码点:(传入的是unicode码点数字,显示码点数字代表的字符)

          :d将证书视为十进制证书进行处理,这里是整数的默认使用说明符

          :e使用科学表示法来表示小数,用e来进行表示

          :E使用科学表示发来表示小数,用E来表示

          :f使用小数来表示为定点数

          :F使用小数来进行表示,但是特殊字符nan和inf使用大写来表示

          :g:G自动在定点表示法和科学表示法之间做出选择。这是默认为小数的说明符,但是在默认情况下至少有一位小数

          :n不太明白,书上说要在:g的基础上在插入随即域而异的数字分隔符

          :o将整数表示为8进制数

          :x:X将整数表示为十六进制数,并使用大/小写字母

          :%将数表示为百分比值

      设置宽度、精度和千位分隔符

        {:10s}

        冒号后面直接加一个数字,这个数字就是其宽度,如果宽度超过了字符串的超度的话,那么如果是数字,就默认向右对齐,如果

        是字符串的话,就默认向左对齐!

        注意:如果插入的表达式的宽度要超过设置的宽度的话,那么就会按字符串的长度进行显示,不受设置宽度的限制!

        {:.2f}

        冒号后面加一个.4,就表示该处该是为精确到4位的小数。通常只用于在设置float的时候使用

        {:,}

        表示为数字添加一个千位分隔符

        使用{:填充物+<>^对齐指示符号+宽度.(小数指示符),(千位符表示)(小数位数)(数据类型f,d等等)}.format()

        可以对要表达的字符串和数据进行精确的显示设置

        另外,如果需要在会计上显示+-号,那么就在宽度前面加上一个+号就可以了

        如果在宽度钱加上一个=号,那么正负数的数字和正负号将分别想两端对齐!

        最后,如果要用特殊模式显示二进制数,8进制和16进制数字的话,可以在符号说明符和宽度之间放一个#!

        如果需要设置多个宽度,精度和千分位隔符的话,要按照以下的顺序进行设置:(:'对齐符''长度''千分位符''小数点''精度''数据类型')

        

    print('格式表达:{:^20,.2f}'.format(19749318.719238))


    思考:

      使用这样的字符串方法可以让我实现一个功能:从Excel中导入和导出数据,这样可以让我的数据变得更加直观化!可以找时间去自己实现一些这个功能!

  • 相关阅读:
    百度网盘破解
    openstack2 kvm
    Openstack1 云计算与虚拟化概念
    Rsync + Sersync 实现数据增量同步
    Ansible 详解2-Playbook使用
    Ansible 详解
    Python mysql sql基本操作
    COBBLER无人值守安装
    ELK 环境搭建4-Kafka + zookeeper
    此坑待填 离散化思想和凸包 UVA
  • 原文地址:https://www.cnblogs.com/wanghanyao/p/10261153.html
Copyright © 2020-2023  润新知