字符串 str 

   作用: 

     用来记录文本信息 

   字面值表示方法: 

     用引号括起来的部分都是字符串 

       '    单引号 

       "    双引号 

       '''  三单引号 

       """  三双引号 

   字符串的字面值表示方式: 

     '' 

     "" 

     '''''' 

     """""" 

   非空字符串的字面值表示方式: 

     'hello' 

     "hello" 

     '''hello''' 

     """hello""" 

   单引号和双引号的区别: 

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

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

   三引号字符串的作用: 

     三引号内可以包含单引号和双引号 

     三引号字符串中的换行会自动转换为换行符'\n' 


   隐式字符串字面值拼接 

     s = "I'm a teacher." 'My name is "weimz"' 


   用转义序列代表特殊的字符 

     字符串字面值中 用字符反斜杠\ 后跟一些字符代表特殊的一个字符 

       例如: 

         \'  代表一个单引号 

         \"  代表一个单引号 

         \n  代表一个换行符 


   字符串中反斜杠转义字符表 

     \'    单引号 

     \"    双引号 

     \\    反斜杠 

     \n    换行 

     \r    返回光标至行首 

     \f    换页 

     \t    水平制表符 

     \v    垂直制表符 

     \b    退格 

     \0    字符串, 字符值为零 

     \xXX  XX 为两位十六进制表示的字符 

     \uXXXX  Unicode16 的十六进制表示的字符 

     \UXXXXXXXX Unicode32的十六进制表示的字符 


 ASCII 编码 

   码表见: 

     $ man ascii 

   常见的ASCII编码: 

     字符     十进制    十六进制 

     '0'      48        0x30 

     'A'      65        0x41 

     'a'      97        0x61 

     '\0'      0        0x00 

     '\n'     10        0x0A 


 UNICODE编码: 

   全世界字符统一编码 

     分类: 

       UNICODE16(两个字节) 

       UNICODE32(四个字节) 


   示例: 

     >>> print('\u9042') 

     遂 

     >>> print('遂') 

     遂 

     >>> print('\U00009042') 

     遂 


 raw 字符串 (原始字符串) 

   格式: 

     r'字符串内容' 

     r"字符串内容" 

     r'''字符串内容''' 

     r"""字符串内容""" 

   作用: 

     让转义符号 \ 无效 

   示例: 

     # 转义之后的 

     a = 'C:\newfile\test.py' 

     print(a) 

     # 未转义raw字符串 

     a = r'C:\newfile\test.py' 

     print(a) 


 字符串的运算: 

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

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

   示例: 

     s = 'ABCD' + 'EFG' 

     s += '123' 

     print(s) 

     s2 = s + s  #  

     print(s2) 


   *  生成重复的字符串 

   *= 生成重复的字符串并让原变量绑定生成后的字符串 

   示例: 

     s = "ABC" * 3  # s='ABCABCABC' 

     print(s) 

     s2 = 5 * '0'  # s3 = '00000' 

     s = "123" 

     s *= 3  # s = '123123123' 


 练习: 

   写一个程序,打印一个高度为4行的矩型方框 

     要求.输入一个整数数字,此整数代表矩形的宽度 

   输出此矩型 

   如: 

     请输入矩形宽度: 10 

   ########## 

   #        # 

   #        # 

   ########## 

   如: 

      请输入矩形宽度: 5 

   ##### 

   #   # 

   #   # 

   ##### 


 字符串的比较运算: 

     > 

     >= 

     < 

     <=  

     == 

     !=  

   格式: 

     x > y 

   比较规则: 

     1. 字符串x的第一个字母与字符串y的第一个字母比较,如果不相同,则直接得到比较结果,如果相同,则再取第二个字母进行比较,以此类推 

     2. 比较的依据是字符的UNICODE编码值 


   示例: 

     'AD'  > 'ABC'  # True 

     'ABC' != 'CBA'  # True 

     'ABC' == 'CBA'  # False 

     'AB'  <= 'ABC'  # True 


 in / not in 运算符 

   作用: 

     用于序列,字典,集合等容器中,用于判断某个值是否存在于容器中,如果存在返回True,否则返回False 

     not in 与 in 运算符的返回结果相反 

   格式: 

     对象 in 序列 

   示例: 

     >>> 'A' in "ABCD" 

     True 

     >>> x = 'welcome to tarena' 

     >>> 'to' in x 

     True 

     >>> 'hello' not in x 

     True 

     >>> "ABCD" in x 

     False 


 字符串的索引 index 

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


   语法: 

     字符串[整数表达式] 

   说明: 

     python序列都可以用索引(index)来访问序列中的对象 

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

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

   示例: 

     >>> s = "ABCD" 

     >>> print(s[0])  # A 

     A 

     >>> print(s[2])  # C 

     C 

     >>> print(s[-1]) 

     D 

     >>> print(s[-4]) 

     A 

     >>> print(s[-8])  # 出错 


 练习: 

   输入一个字符串, 

      1. 打印这个字符串的第一个字符 

      2. 打印这个字符串的最后一个字符 

      3. 如果此字符串的长度为偶数,打印一个 '|',如果长度为奇数,打印中间的字符 

      注: 

        求字符串长度的函数len(x)  



 切片 slice 

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


   语法: 

     字符串[(开始索引b):(结束索引e)(:(步长s))] 

     注: 小括号() 括起的部分代表可以省略 

   语法说明: 

     1. 开始索引是切片切下的位置,0代表第一个元素,1代表第二个元素,-1 代表最后一个元素 

     2. 结束索引是切片的终止索引(但不包含终止点) 

     3. 步长是切片每次获取完当前元素后移动的方向和偏移量 

        1) 没有步长,相当于取值完毕后向右移动一个索引的位置(默认为1) 

        2) 当步长为正整数时,最正向切片 

        3) 当步长的负整数时,取反向切片 

          反向切片时,默认的起始位置为最后一个元素,终止位置是第一个元素的前一个位置 


   示例: 

     s = 'ABCDE' 

     s[2:-2]  # 'C' 

     s[:-2]   # 'ABC' 

     s[:-2:2] # 'AC' 

     s[-1:0:-1] # 'EDCB' 

     s[-1:-100:-2]  # 'ECA' 

     s[::-2]   # 'ECA' 


 练习: 

   输入任意一个字符串,判断这个字符串是否是回文 

     回文示例: 

       上海自来水来自海上 

       ABCCBA 

     回文是指中心对称的文字 

   提示: 

     把输入的字符串反转后判断与原输入的字符串是否一致 

     如果一致既为回文 




 python3中常用的序列函数: 

   len(seq)  返回序列的长度 

   max(x)  返回序列的最大值的元素 

   min(x)  返回序列的最小值的元素 


 字符串编码转换函数 

   ord(c)   返回一个字符的Unicode值 

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


   示例: 

     i = ord('魏') 

     print(i)  # 39759 

     c = chr(39759) 

     print(c)  # 魏 


 练习: 

   1. 写一个程序,输入一段字符串,如果字符串不为空,则把第一个字符的UNICODE编码值打印出来 

   2. 写一个程序,输入一个整数值(0~65535), 打印这个编码所对应的字符 


 整数传换为字符串函数: 

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

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

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


 字符串构造函数 

   str(obj='')   将对象转换为字符串 


 练习: 

   输入三行文字,让这三行文字在一个方框内居中显示 

   (请不要输入中文) 

   如: 

     请输入第1行: hello tarena! 

     请输入第2行: my name is weimingze. 

     请输入第3行: today is sunday! 

   显示如下: 

     +-----------------------+ 

     |     hello tarena!     | 

     | my name is weimingze. | 

     |   today is sunday!    | 

     +-----------------------+ 

   注:max() 函数可以输入多个参数,最终返回最大的一个