美文网首页
Day4 字符串

Day4 字符串

作者: ChiAo1fei | 来源:发表于2018-12-27 18:52 被阅读0次

    1. 获取字符串中的字符

    1. 获取单个字符
      字符串中的每一个字符都会对应一个唯一的下标(索引)用来表示字符在字符串中的位置。
      下标从0开始依次增加的,0对应的是第一个字符;也可以是从-1开始依次减少,-1代表最后一个字符。
      例如'hello' -> h->0 e->1 l->2 l->3 o->4
      -> h->-5 e->-4 l->-3 l->-2 o->-1
      范围:(0-len-1),(-1 ~ -len)
      • 获取单个字符的语法:字符串[下标] - 获取字符串中指定下标对应的字符
      • 说明:字符串 - 只要是字符串的表达式都可以;[] - 固定写法;下标 - 需要获取的字符对应的下标;下标不能越界
      str1 = 'I Love You'
      len1 = len(str1)
      print(len1, str1[-5], 'I Love You'[-5 + len1])
      """
      print(str1[11])    IndexError: string index out of range 数组下标越界
      """
      
    2. 获取部分字符(字符串切片)
      1. 方法1:
        1. 语法:字符串[开始下标:结束下标:步长] - 从开始下标开始,获取到结束下标前为止。每次下标值加上步长
        2. 说明
          字符串 - 只要是字符串的表达式都可以,例如:字符串字面量,字符串变量
          [::] - 固定写法
          开始下标、结束下标 - 下标值(这儿的下标可以越界)
          步长 - 必须是整数,整数和负数都可以,如果步长是正,是从开始下标从前往后获取,反之,则相反
        3. 注意
          当步长为正,要求开始下标对应的字符的位置,必须在结束下标对应的字符的位置的前面,否则结果为空
          当步长为负,要求开始下标对应的字符的位置,必须在结束下标对应的字符的位置的后面,否则结果为空
          结束下标一定取不到
      print(str1[0:9:1])
      print(str1[-1:-10:-1])
      print(str1[9:0:-1])
      print(str1[-10:-1:1])
      print(str1[-1:-100:-1])
      print(str1[100:-100:-1])
      
      1. 方法2:(省略步长)
        字符串[开始下标:结束下标]-->默认步长为1:从开始下标到结束下标前为止,一个一个的取
      2. 方法3:(省略开始下标和结束下标)
        • 省略开始下标
          字符串[:结束下标:步长(可省略)]
          当步长为整数,从字符串的第一个字符开始取到结束下标前为止;
          当步长为负数,从字符串的最后一个字符开始到结束下标前为止;
        • 省略结束下标
          字符串[开始下标::步长(可省略)]
          当步长为整数,从字符串的开始下标开始取到字符串最后一个字符为止;
          当步长为负数,从字符串的开始下标开始取到字符串的第一个字符为止;
      print(str1[:6], str1[:6:-1], sep=',')
      print(str1[2:], str1[2::-1], sep=',')
      print(str1[::-1])               #字符串倒序
      print(str1[-1::-1])
      print(str1[:-len(str1) - 1: -1])
      

    2. 字符串的相关运算

    1. 字符串支持的运算符:+, *, >, <, ==, !=, >=, <=
      python中的字符串支持数学运算符中的+和 *,以及所有的比较运算符
      a. +: 字符串1 + 字符串2 - 将字符串1和字符串2拼接在一起
      注意:字符串不能和数字混合相加!
      b. *: 字符串 * N - N是正整数;字符串重复N次,产生一个新的字符串
      new_str = 'abc' + '123'
      print(new_str)
      name = '张三'
      message = '吃了没'
      print(name + message)       
      print('abc' * 3)
      
      c. 比较是否相等:==,!=: 可以判断两个字符串是否相等或者不等
      d. 字符比较大小: 从第一个字符开始依次往后找,找到第一个不相等的字符对,判断他们的编码值的大小,编码值大,对应的字符串就大,就不在往后比较了
      应用
      1. 判断是否是小写字母: 'a' <= char1 <= 'z' <==> char1 >= 'a' and char1 <= 'z'
      2. 判断是否是大写字母: 'A' <= char1 <= 'Z' <==> char1 >= 'A' and char1 <= 'Z'
      print('abc' == 'abc')
      print('abc' == 'bac')
      print('abc' != 'abc')
      print('dcb' > 'abcde')
      (#) 判断一个字符串中的第三个字符是否是字母
      str1 = 'shk23.s哎y23'
      char1 = str1[2]
      print('a' <= char1 <= 'z' or 'A' <= char1 <= 'Z')
      print('是否是中文:', '\u4e00' <= str1[-4] <= '\u9fa5')
      
    2. in 和 not in操作:
      字符串1 in 字符串2 -> 判断字符串1是否在字符串2里,判断字符串1是否是字符串2的子串
      字符串1 not in 字符串2 -> 判断字符串1是否不在字符串2里,判断字符串1是否不是字符串2的子串
      print('abc' in 'hello abc')             #True
      print('abc' in 'ahello bc')             #False
      
    3. len()函数:
      len(序列) - 获取序列长度、获取序列中元素的个数
      len(字符串) - 获取字符串的长度(字符的个数)
      注意
      1.一个可以转义的转义字符的长度是1
      2.一个编码字符的长度是1
      3.一个空格字符的长度1
      4.手动在键盘上按一个tab,一般是4个空格,长度为4;一个\t表示的tab,长度为1
      str1 = '    abc'
      print(str1)
      print(len(str1))
      str2 = '\tabc'
      print(str2)
      print(len(str2))
      

    3. 格式字符串

    1. 什么是格式字符串:
      在字符串中通过格式占位符来代替字符串中变化的部分,然后在后面通过数据或者变量确定变化
    2. 语法:
      包含占位符的字符串加%(每个占位符对应的值1,值2,值3,...)
    3. 占位符
      %s %d %f %c(将数字对应的编码转换为字符),(%.nf) -> 保留小数点后n位小数
      % - 固定写法
      () - 固定写法,字符串中只有一个占位符的时候可以省略
      括号中的值 - 值和占位符要一一对应,个数,类型,位置都要对应
      name = input('姓名:')
      age = 18
      sex = '男'
      salary = float(input('年薪:'))
      message = '我叫%s,今年%d岁,性别:%s,月薪%.2f万,%c' % (name, age, sex, salary,98)
      print(message)
      

    4. 类型转换

    1. 语法:
      类型名(数据) - 将制定数据转换为指定类型
      说明:
      类型名 - 任何python支持的,或者自定义的类型都可以
      数据 - 需要转换的对象(类型不同要求可能不一样)
    2. 转换实例:
      int(数据) --> 将其他数据转换成整型
      float(数据) --> 将其他数据转换为浮点型
      bool(数据) --> 将其他类型转换成布尔
      • 转换成整型
        a = int(12.8)
        b = int(True)
        c = int('13')
        print(a)        #直接保留整数部分,而不是四舍五入
        print(b)        #布尔可以转换成整数,True为1,False为0
        print(c)        #本身只有数字的整数的字符串可以转换成为整型
        
      • 转换为浮点型
        a = float(12)   #所有整数都可以转换为浮点型,在后面加   .0
        b = float(True) #True 1.0   False 0.0
        c = float('12.9')#去掉引号后,本身只要是数字就可以转换
        print(a,b,c)
        
      • 转换为布尔类型:python中所有的数据可以转换为布尔
        a = bool(100)   #所有为0  空的值都为False
        b = bool(0.0)
        c = bool('')
        d = bool([])
        e = bool({})
        f = bool(None)
        print(a, b, c, d, e, f)
        
      • 转换成字符串类型
        python中所有的数据都可以转换趁该字符串,而且转换的时候就是单纯的在最外面加引号

    相关文章

      网友评论

          本文标题:Day4 字符串

          本文链接:https://www.haomeiwen.com/subject/leydlqtx.html