Python之路,第四篇:Python入门与基础4

Python3 字符串

              字符串是一个有序的字符序列

              如何表示一个字符串:

                     在非注释中凡是用引号括起来的部分都是字符串;

                     ‘  单引号     ”  双引号      ‘’‘  三单引号    “”“  三双引号

              非空字符串中的表示方法:

                     ‘hello’  、   “hello”  、  “”“hello”“”  、 ‘’‘hello’‘’      

              单引号和双引号三引号的区别:

                       单引号内的双引号不算结束符;

                       双引号内的单引号不算结束符;

 

              三引号字符串,也叫所见即所得字符串,
                       字符串中可以包含换行符、制表符以及其他特殊字符; 字符串的换行直接被记录在字符串内部;

 

>>> "I'm  a  tree."
"I'm  a  tree."
>>> 'I am a "tree".'
'I am a "tree".'
>>> 

 

>>> x = 'hello\nworld!'
>>> y = """hello
world!"""
>>> if x == y:
    print("两个字符串相同!")

    
两个字符串相同!
>>> print(x)
hello
world!
>>> print(y)
hello
world!
>>> 

              空字符串的表示方法:

                   ‘ ’   、  “ ”  、   '''   '''  、   “”“   ”“”

                空字符串的布尔值(bool)为False。

>>> x = ''
>>> bool(x)
False
>>> x = ' '
>>> bool(x)
True
>>> 

             换行符(\n ):

                    print("hello\nworld!")

            隐式字符串拼接:

                   x = “aaaaaaaaaaaa”

                        “aaaaaaaaaaaa”

                        “aaaaaaaaaaaa”

                   s = “I'm” ' a tree' 'name:"yangshu" '

            用转义序列代表特殊字符;字符串常量中用字符反斜杠 \    ;  后跟一些字符代表特定含义的字符; 

                   \'   单引号 、 \"  双引号 、   \n  换行符

转义字符    描述
\(在行尾时)    续行符
\\    反斜杠符号
\'    单引号
\"    双引号
\a    响铃
\b    退格(Backspace)
\e    转义
\000    空
\n    换行
\v    纵向制表符
\t    横向制表符
\r    回车
\f    换页
\oyy    八进制数,yy代表的字符,例如:\o12代表换行
\xyy    十六进制数,yy代表的字符,例如:\x0a代表换行
\uXXX   Unicode16位的十六进制表示
\uXXXXXXXX Unicode32位的十六进制表示

           ASCII  字符表

                   #man ascii <回车>待补充

          中文 “\u4e2d\u6587”

              Unicode

               UTF-8 (unicode  transfrom font)

           常用的ASCII编码:

                  字符          十进制            十六进制

                  ‘0’               48                      0x30

                  'A'               65                     0x41

                  'a'               97                      0x61

         

           raw 字符串(原始字符串)

                  格式: r‘C:\Windows\System32’

                             'C:\\Windows\\System32'

                  作用: 将字符串内的反斜杠不做为转义字符。

       序列相关的字符串函数:

             len(x)函数用于获取字符串序列的长度(长度指字节数); 

            max(seq) 函数用于获取一个字符串的最大值的字符;

            min(seq) 函数用于获取一个字符串的最小值的字符;   

   

>>> >>> len("ASDF")
4
>>> max("Aa1Bb2")
'b'
>>> min("Aa1Bb2")
'1'
>>> 

 

          字符串代码转换函数:

                 ord(str)  返回一个字符的ASCII的值;

                 chr(i)     返回i这个值所对应的字符;

         数字转换为字符串函数:

                 hex(i)  将整数转换为十六进制字符串

                 oct(i)   将整数转换为八进制字符串

                 bin(i)  将整数转换为二进制字符串

         注:int(‘1234’, 10)#1234   转换为十进制

         将字符串转换为整数:

                  int(x, base=0) 将字符串转换为整数

                  float 

                  bool

                  complex

           将对象转换为字符串类型str函数

                 str(x)  x可以是任意对象

           为什么要字符串转换?

                   “123” + 4

                   123 + 4  #127 整数     、    “123” + str(4)  # 1234 新的字符串

            字符串的运算:

                   +     +=           *     *=

                  + 加号运算符用于拼接字符串

                 +=  运算符用源字符串与右边字符串拼接生成新的字符串

>>> 'abc' + '123'
'abc123'
>>> '123' + 'abc'
'123abc'
>>> 
View Code

 

>>> a = "ABC"
>>> b = "DEF"
>>> c = a + b
>>> print(c)
ABCDEF
>>> a
'ABC'
>>> a += b
>>> a
'ABCDEF'
>>> 

 

              *  运算符生成重复字符串

             *=  运算符生成重复字符串并改变变量的绑定;  (*=右侧的对象只能是整数)

>>> b
'DEF'
>>> b * 3
'DEFDEFDEF'
>>>

  >>> x = "123"
  >>> x *= 4
  >>> print(x)
  123123123123
  >>>

             in   、 not  in  运算符

              作用:in/not 用于序列,字典,集合中,用于判断某个值是否存在于对象中, 存在返回TRUE,不存在返回FALSE;

                        not  in 与in 返回值相反;

>>> s = "My name is 'xiaoming'"
>>> if 'is' in s:
        print("is在字符串s中")
    else:
        
        print("is不在字符串s中")
>>> 

 

              字符串比较:

                     >     >=      <    <=    ==     !=   

>>> "ABC" > "ABB"
True
>>> "ADC" < "ABC"
False
>>> "ABC" >= "123"
True
>>> "AD" >= "ABC"
True
>>> "AB" < "ABC"
True
>>> "ABC" == "abc"
False
>>> 

 

 

    python 运算符优先级(自上而下,由高到低):

      **    指数

     ~ , + , -    按位反转, 一元正号, 一元负号

     * , / , // ,  %   乘。。。

     + , -  加法减法

    >>   <<   右移左移

     &         位于

      ^          异位或

      |        位或

      <  , <=   ,> ,>=, ==,  !=  , is ,  is not ,   in  , not in 比较等。。 

     not

      and

       or

       if    else 条件表达式

 

           索引 index

                   python字符串是不可以改变的“字符”序列。

                  语法:字符串{【整数值】

                  说明:  序列都可以用索引(index)来访问序列的对象。

                               序列正向的索引是从0开始的, 第二个索引为1 ......最后一个为   len(s)-1  

                              序列的反向 索引是从-1开始的, -2 代表倒数第二个....., 最后一个是 -len(s)   

#!/usr/bin/python

s = input("请输入一个字符串:")
print("第一个字符", s[0],"",s[-len(s)])
print("中间字符串:",s[len(s)//2])
print("最后一个字符:",s[-1],"",s[len(s)-1])
>>> ================================ RESTART ================================
>>> 
请输入一个字符串:abcdefgh
第一个字符 a 和 a
中间字符串: e
最后一个字符: h 和 h
>>> 

 

             切片 slice (分片)

                    用于字符串中,从字符串序列中取出相应的元素,重新组成一个新的字符串序列。

                   语法: 字符串【(开始索引b): (结束索引e) :(步长s)】      ;注:小括号括起来的部分代表可以省略;

>>> s = "abcdefgh"
>>> 
>>> s[:]
'abcdefgh'
>>> s[2:4]
'cd'
>>> s[2:3]
'c'
>>> s[2:2]
''
>>> s[2:0]
''
>>> s[2:]
'cdefgh'
>>> s[:2]
'ab'
>>> 

>>> s[0:6:2]
'ace'
>>> s[0:100:2]
'aceg'
>>> s[::2]
'aceg'
>>> s[::3]
'adg'
\
>>> s[::4]
'ae'
>>> s[::5]
'af'
>>> s[::100]
'a'
>>>

               字符串的方法(method)

                       字符串属性的方法: 对象.属性

                       s.lower()            生成将英文转化为小写的字符串;

                       s.upper()          生成将英文转化为大写的字符串;                           

                       s.title()               生成将因为单词首字母大写的字符串;

                       s.isdigit()            判断字符串是否为数字

                       s.isalpha()          判断字符串是否为英文字符       

                       s.islower()          判断字符串是否都为小写字符串

                       s.isupper()          判断字符串是否都为大写字符串

                       s.strip()               返回去掉左右空白字符串的字符串;

                       s.lstrip()             返回去掉左空白字符串的字符串;     

                       s.rstrip()              返回去掉右空白字符串的字符串;  

                       s.count(sub,  [, start [,end]])   返回一个字符串子串的个数;

                       s.find(sub [, start [, end]])    返回一个字符串sub的索引,失败返回-1  ;

                       s.replace(old, new [, count])    用新字符串替换旧字符串 ;

>>> '123'.isalpha()
False
>>> "ABC".isalpha()
True
>>> "AB C".isalpha()
False
>>> "ABC".strip()
'ABC'
>>> "   ABC   \n".strip()
'ABC'
>>> "   ABC   \n".rstrip()
'   ABC'
>>> "AB AC ABC".find("AB")
0
>>> "AB AC ABC".find("AB", 1)
6
>>> "AB AC ABC".find("AB", 0)
0
>>> 
>>> "AB AC ABC".find("A", 4)
6
>>> "AB AC ABC".find("A", 4, 7)
6
>>> "AB AC ABC".find("A", 4, 6)
-1
>>> "AB AC ABC".replace("AB", "")
' AC C'>>> "AB AC ABC".replace("AB", "++++++")
'++++++ AC ++++++C'
>>> 

             用help 查找str 这个类型的帮助; 

                      help(str)

                      help("__main__")

              

             字符串的格式化表达式:

                     运算符   %

                     作用: 生成一定格式的字符串;

                     语法: 格式化字符串  %   参数值 ;  或者    格式化字符串  %  (参数值1,参数值2.。。。)

                     格式化字符串中的占位符:

                       %s        字符串

                       %r         字符串,使用repr(而不是str)

                       %c         整数转单个字符

                       %d         十进制整数

                       %o         八进制整数

                       %x          十六进制整数(字符a-f 小写) 

                       %X         十六进制整数  (字符A-F大写)

                       %e         指数型浮点数,如2.9e + 8

                       %E        指数型浮点数,如2.9E + 8 

                       %f,%F    浮点十进制形式

                       %%        等同于一个%

>>> name = 'xiaoming'
>>> age = 23
>>> "name: %s, age: %d" % (name, age)
'name: xiaoming, age: 23'
>>> "%(name)s今年%(age)d岁." % {'age':23, 'name':'xiaoming'}  #基于字典的格式化
'xiaoming今年23岁.'
>>> 

 

                     占位符和类型码之间的格式语法:

                        -   号  左对齐、  + 右对齐 、 0 补零  、  width 宽度 、  pricision 精度;

 

>>> "%10d" % 123
'       123'
>>> "%-10d" % 123
'123       '
>>> "%10d" % -123
'      -123'
>>> "%-10d" % -123
'-123      '
>>> "%0d" % 123
'123'
>>> "%010d" % 123
'0000000123'
>>> "%10s" % "abc"
'       abc'
>>> "%7.2f" % 1.2345678     #宽度7, 保留小数点2位
'   1.23'
>>> 

 

                         

 

 

 

 

 

 

 

 

 

 

 

posted on 2018-04-26 20:05  微子天明  阅读(226)  评论(0编辑  收藏  举报

导航