Skr-Eric的Python课堂(四)——Python的字符串介绍

字符串 str (string)


  作用:
    用来记录文字信息
  表示方法:
    在非注释中凡是用引号括起来的部分都是字符串
    '    单引号
    "    双引号
    '''  三单引号
    """  三双引号

 

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


  ''
  ""
  ''''''
  """"""
  注:空字符串的布尔测试值bool(x)为 False

非空字符串的字面值


  'hello'
  "hello"
  '''hello'''
  """hello"""

单引号和双引号的区别:


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

  示例:
    print("I'm a teacher")
    print('I am "weimingze"')

三引号字符串


  以'''或"""开头,以'''或"""结尾的字符串
  作用:
    三引号字符串中的换行会自动转换为换行符'\n'
    三引号内可以包含单引号和双引号
  示例:
    # 要表示如下的文字内容:
    welcome to beijing.
    I like python!
    I am studing.
    s = 'welcome to beijing.\nI like python!\nI am studing.'

    s2 = '''welcome to beijing.
    I like python!
    I am studing.'''

隐式字符串字面值的拼接


   "I'm Teacher."   'I am "weimingze"'
   得到的字符串等同于
   '''I'm Teacher.I am "weimingze"'''

用转义序列代表特殊字符


  字符串字面值中用字符反斜杠 \ 后跟一些字符代表特殊的一个字符
转义字符表:
   \'  代表一个单引号
   \"  代表一个双引号
   \n  代表一个换行符
   \\  代表一个反斜杠
   \r  返回光标至行首
   \t  水平制表符
   \f  换页
   \v  垂直制表符
   \b  倒退(backspace)
   \0  字符串,字符值为0
   \0oo  oo为两位八进制表示的字符
   \xXX  XX为两位十六进制表示的字符
   \uXXXX Unicode 16的十六进制的字符
   \UXXXXXXXX Unicode 32 的十六进制表示的字符

ASCII 编码:


   # 查看 ASCII编码表
   $ man ascii  # 仅linux可用

常用的ASCII编码:


  字符    十进制    十六进制
  '0'     48        0x30
  'A'     65        0x41
  'a'     97        0x61

序列的概念


  字符串就是序列

求序列的长度的函数len
  len(x)  返回字符串中字符的个数

字符串练习:
   '1234abcd'  有几个字符 8
   '5\'4"'     有几个字符 4
   '\"A\x34'   有几个字符 3

raw 字符串(原始字符串)


  格式:
    r"字符串内容"
    r'字符串内容'
    r"""字符串内容"""
    r'''字符串内容'''
  作用:
    让转义字符 '\' 无效
  示例:
    a = "C:\newfile\test.py" 
    print(a)

    b = r"C:\newfile\test.py"
    print(b)
    print(len(a))  # 16
    print(len(b))  # 18

字符串的运算:


运算符:
  +   +=  *  *=

+ 加号运算符用于拼接字符串
+= 用于拼接运算后改变原变量的绑定关系
  示例:
  x = "abcd" + "efg"
  print(x)  # abcdefg
  x += '123'
  print(x)  # abcdefg123

* 运算符生成重复的字符串
  x = "ABCD" * 3  # x = 'ABCDABCDABCD'
  y = 2 * "123"  # y = '123123'
  注: 字符串只能和整数相乘

*= 生成重复的字符串并改变原变量的绑定关系
  x = '123'
  x *= 2  # x = '123123'
  y = 3
  y *= "ABC"  # y = 'ABCABCABC'

字符串的比较运算


  运算符:
    < <= > >= == !=
  示例:
    'A' < 'B'  # True
    'AB' <= 'AC'  # True
    'ABC' > 'ACB'  # False
    'AD'  > 'ABC'  # True
    'AB'  < 'ABC'  # True
    'ABC'  == 'abc'  # False
    'ABCD' != 'DCBA'  # True

in / not in 运算符


  作用:
    in 用于序列,字典,集合中,用于判断某个值是否存在于容器中,如果存在返回True, 否则返回False
  说明:
    not in 返回结果与in 相反
  格式:
    对象 in 序列
  示例:
    x = 'welcome to tarena!'
    'to' in x  # True
    'e t' in x  # True
    'hello' in x  # False
    'hello' not in x  # True

索引 index


  python字符串是不可以改变的序列,
  所有的序列都可以通过索引来获取其中的数据元素

语法:
  字符串[整数表达式]
说明:
  1. 序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s)-1
  2. 序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第二个,以此类推,第一个是-len(s)

示例:
  s= 'ABCDE'
  s[0]   # 'A'
  s[-1]  # 'E'  反向索引
  s[-3]  # 'C'
  s[-5]  # 'A'
  s[-8]  # IndexError 越界错误


  注:
    求字符串长度的函数 len(s)

切片 slice


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

  语法:
    s[(开始索引b):(结束索引e)(:(步长s))]
    注: 小括号() 括起的部分代表可省略

  说明:
    1. 开始索引b是切片切下的位置,0代表第一个元素,1代表第二个元素 -1代表最后一个元素...
    2. 结束索引是切片的终止索引(但不包含终止点)
    3. 步长是切片每次获取完当前元素后移动的方向和偏移量
    3.1 没有步长,相应于步长为1(默认为1)
    3.2 当步长为正整数时,取正向切片,开始索引默认为0,结束索引为最后一个元素的下一个位置
    3.3 当步长为负数时,取反向切片.
         反向切片时,默认的起始位置为最后一个元素.终止位置是第一个元素的前一个位置
  示例:
    s = 'ABCDE'
    a = s[1:4]  # a---> 'BCD'
    a = s[1:]   # a---> 'BCDE'
    a = s[0:2]  # a---> 'AB'
    a = s[:2]   # a---> 'AB'
    a = s[:]    # a---> 'ABCDE'
    a = s[1:1]  # '' 空
    a = s[4:1]  # '' 空
    a = s[1:4:2] # 'BD'
    a = s[::2]   # 'ACE'
    a = s[4:0:-1]  # a---> 'EDCB'
    a = s[::-1]  # 'EDCBA'
    a = s[4::-2]  # 'ECA'

python 3中能用于字符串的函数


  len(x)  返回字符串的长度
  max(x)  返回字符串串中编码值最大的字符
  min(x)  返回最小值的字符

示例:
  s = "Hello"
  len(s)  # 5
  max(s)  # 'o'
  min(s)  # 'H'

字符串编码转换函数:


  ord(c)  返回一个字符c的Unicode编码值
  chr(i)  返回i这个值所对应的字符

示例:
  print(ord('A'))   # 65
  print(ord('中'))  # 20013
  print(chr(65))    # A
  print(chr(2345))  # ???

整数转字符串的函数


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

示例:
  bin(9)     # '0b1001'
  oct(10000) # '0o23420'
  hex(10000) # '0x2710'

字符串的构造(创建)函数


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

帮助函数 help(xxx)
   >>> help(函数名)
   >>> help(类型名)

python3 中常用的字符串方法(method)


  方法的调用语法:
    对象.方法名(方法传参)
  示例:
    'abc'.isalpha()  #True判断'abc'是否是字母
    123.isalpha()  #  报错
 

字符串格式化表达式


  作用:
    生成一定格式的字符串
  运算符:
    %
  语法格式:
    格式字符串  % 参数值
    或
    格式字符串  % (参数值1, 参数值2, ...)
  说明:
    % 左侧为格式字符串
    % 右侧为参数值,当有多个参数值是用括号() 括起来,并用逗号(,)分隔
    格式化字符串中以%开头的为占位符,占位符的位置将用参数值替换
  示例:
    fmt = "name: %s, age: %d"
    s = fmt % ('weimingze', 35)
    print(s)  # name: weimingze, age: 35
    "温度:__%d__" % 32

 格式化字符串中的占位符和类型码


   %s   字符串,使用 str(x) 将x转换为字符串
   %r   字符串,使用 repr(x) 将x转换为字符串
   %c   整数转为单个字符
   %d   转为十进制整数
   %o   转为八进制整数
   %x   十六制进整数(字符a-f小写)
   %X   十六制进整数(字符A-F大写)
   %e   指数型浮点数(e小写), 如2.9e+10
   %E   指数型浮点数(E大写), 如2.9E+10
   %f, %F 浮点数(小数形式)
   %g, %G  十进制浮点数或指数浮点自动转换
   %%   等同于一个%字符

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


  % [- + 0 宽度.精度] 类型码
  -   : 左对齐
  +   : 显示正号
  0   : 左侧空白位置补零
  宽度 : 整个字符串的字符个数
  精度 : 保留小数点后多少位(默认6位)

示例:
  "%10d"  % 123    # '       123'
  "%+10d" % 123    # '      +123'
  "%-10d" % 123    # '123       '
  "%10s"  % 'abc'  # '       abc'
  "%-5s"  % 'abc'  # 'abc  '
  "%010d" % 123    # '0000000123'
  "%7.3f" % 3.141592535897932  # '  3.141'
  "%07.2f" % 3.141592535897932  # '0003.14'

课后习题:


  1. 用字符串 * 运算符打印三角形
    要求输入一个整数,此整数代表最长的一行星离左侧的字节数
  如:
    请输入离左侧的距离: 3
  打印如下:
      *
     ***
    *****
   *******
  2. 输入一个字符串,把输入的字符串中的空格全部去掉.打印出处理后的字符串的长度和字符串内容

 

想要看更多的课程请微信关注SkrEric的编程课堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值