Python编程语言下的字符串及编码

字符串 str:

    作用:用来记录文本(文字)信息


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


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

     '
     "
     '''
     """


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

     'hello'
     "hello"
     '''hello'''
     """hello"""
单引号和双引号的区别:
    单引号内的双引号不算结束符
    双引号内的单引号不算结束符
    例:print("i'm a teacher")
        print('hello "tarena"')
        print("我是'''三单引")


三引号字符串:
作用:
    三引号字符串的换行会自动转化为换行符‘\n’
    三引号内可以包含单引号和双引号
如何表示:
    'welcome to beijing \nI like python!\nI am studing!'
例:s = '''welcome to beijing !
           I like python!
           I am studing!'''


用转义序列代表特殊字符:
   字符串字面值中,用字符反斜杠(\)后跟一些字符代表一个字符


字符串中的转义字符表:
\'  代表一个单引号
\"  一个双引号
\\  代表一个反斜杠
\n  换行
\r  返回光标至行首
\f  换页
\t  水平制表符
\v  垂直制表符
\b  倒退
\0  空字符,字符值为0
\0oo   oo为两位八进制代表的字符
\xXX   XX为两位十六进制代表的字符
\uXXXX unicode16的十六进制代表的字符
\uXXXXXXXX unicode32的十六进制代表的字符


ASCII编码
   ASCII 字符表
   $ man ascii


常用ASCII编码:
字符      十进制        十六进制
'0'         48           0x30
'A'         65           ox41
'a'         97           0x61


raw字符串(原始字符串)
字面值格式:
r'字符串内容'
r"字符串内容"
r'''字符串内容'''
r"""字符串内容"""


作用:让转义字符\无效
示例:
    a='C:\newfile\test.py'
    print(a)
    print(len(a))  #得到字符串的长度
    a=r'C:\newfile\test.py'
    print(a)
    print(len(a))




字符串的运算:
   算术运算符:
    +   +=   *   *=
    + 加号运算符用于字符串的拼接
      例:x='abcd'+'efg'
          print(x)   #abcdefg
          x += '123'
  print(x)   #abcdefg123
      
    * 运算符用于生成重复的字符串
      例:x='123'
          y=x * 2       #y='123123 '
  y=x *= 3       #y='123123123 '
     ·字符串只能和整数相乘
          x=3
          x *= '123'         #x='123123123'


练习:写一个程序,打印一个高度为4的矩形方框,
      要求输入一个整数,此整数代表矩形的宽度,输出此矩形
      如:请输入宽度:10
      打印如下:
        ##########
#        #
#        #
##########






字符串的比较运算
    运算符:
     >  >=   <  <=  ==  !=
    示例:
       ‘A’< 'B'   #True
‘B’< 'a'   #True
‘ABC’> 'AB'   #True
‘AD’< 'ABC'   #False
‘ABC’== 'abc'   #False
         


in / not in 运算符
   作用:
   in用于序列,字典,集合中,用于判断某个值是否存在于容器中,如果存在则返回True,否则返回False
   格式:
   对象 in 容器
   示例:
   s = 'welcome to tarena!'
   'to' in s      # True
   'wei' in s     # False




字符串的索引操作
    python字符串str是不可以改变的字符序列
    索引语法
       字符串[整数表达式]
    说明: 
    ·python 序列都可以用索引(index)来访问序列中的对象(元素)
    ·python 序列的正向索引是从0开始的,第二个索引为1,最后一个索引为len(s)-1
    ·python 序列的反向索引是从-1开始的,-1代表最后一个,-2代表倒数第二个,第一个是-len(s)
      
示例:s = 'ABCDE'
      print(s[0])   # A  
      print(s[1])   # B 
      print(s[4])   # E
      print(s[-1])   # E 
      print(s[-5])   # A  




切片 slice
   从字符串序列中取出相应的元素重新组成一个字符串序列
   语法:
   s[(开始索引b):(结果索引e)(:(步长s))]
   注:小括号()括起的部分代表可省略
   语法说明:
   开始索引是切片开始切下的位置,0代表第一个,
   结束索引是切片的终止索引(但不包含终止点)
   步长是切片每次获取完当前元素后移动的方向和偏移量
   (1)没有步长,相当于取值完成后向右移动一个索引的位置(默认为1)
   (2)当步长为正数时,取正向切片;
        步长默认为1,开始索引默认为0;
        结束索引默认为len(s)
    (3)当步长为负整数时,取反向切片
        反向切片时,默认的起始位置为最后一个元素,终止位置是第一个元素的前一个位置
示例:s = 'ABCDE'
      a = s[1:4]   # a--> 'BCD'
      a = s[:4]    # a--> 'ABCD'
      a = s[2:]    # a--> 'CDE'
      a = s[0:2]   # a--> 'AB'
      a = s[1:1]   # a--> ''   # ''表示空字符串
      a = s[3:1]   # a--> ''
      a = s[0::2]  # a--> 'ACE'
      a = s[0::3]  # a--> 'AD'
      a = s[::]    # a--> 'ABCDE'---->相当于a = s[0:4:1]  
      a = s[2::2]  # a--> 'CE'
      a = s[::-1]  # a--> 'EDCBA'  
      a = s[3::-2] # a--> 'DB'




练习:
    1、输入一个字符串,打印如下内容
      (1)打印这个字符串的第一个字符
       (2)打印这个字符串的最后一个字符
       (3)如果这个字符串长度是奇数,打印中间这个字符
       注:求字符串长度的函数为len(s)
    2、输入任意一个字符串,判断这个字符串是否是回文,回文是指中心对称的文字
       例:上海自来水来自水上(ABCCBA)
     
Python3中常用的序列函数:
len(seq)  返回序列的长度
max(x)    返回序列的最大值元素 
min(x)    返回序列的最小值元素


示例:
  s = "ABCD"
  print(len(s))  #  4
  print(max(s))  #  D
  print(min(s))  #  A


  len('a b\nc')=5 ##空格算一个字符,“\n”为换行符,算一个字符






字符串编码转化函数:
ord(c)  返回一个字符串的Unicode编码值
chr(i)  返回i这个值对应的字符
示例:
print(ord('A'))  # 65
print(ord‘中’)  # ???


练习:
1、写一个程序,输入一段字符串,如果字符串不为空,则把第一个字符的编码打印出来
2、写一个程序,输入一个整数值(0~65535),打印出这个数值所对应的字符




整数转化为字符串函数:
hex(i) 将整数转化为十六进制的字符串
oct(i) 将整数转化为八进制的字符串
bin(i) 将整数转化为二进制的字符串   binary二进制


字符串的构造(创建)函数 str
  str (obj='')  将对象转化为字符串


示例:
  s = 123

  print(str(s) + '456')   # 123456



常用的字符串方法:
见:str.html
   字符串的调用语法
   对象.方法名(方法传参)
  注:方法的调用属于表达式,通常可以返回一个值或None
  示例:
      'abc'.isalpha()     #正确
      'abc中文'.isalpha()     #正确
      'abc123'.isalpha()     #错误
      123.isalpha()       #错误


空白字符:指空格,水平制表符(\t),换行符(\n)等不可见字符


字符串的格式化表达式:
作用:生成一定格式的字符串
运算符:%
语法格式:
    格式字符串 % 参数值
    格式字符串 % (参数值1,参数值2,...)
说明:
    格式化字符串中以%开头的为占位符,占位符的位置将用参数值替换
    %右侧为参数值,当有多个参数值时用括号()括起来,之间用逗号(,)分割
示例;
    fmt = “姓名:%s,年龄:%d”
    name = 'tarena'
    age = 15
    print (fmt % (name,age))


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

见:str.html


    


占位符和类型码之间的格式语法:
% [格式语法] 类型码
   格式语法:
    -  左对齐
    +  显示正负
    0  补零
    宽度(整数)
    宽度·精度(整数)
示例:
    '%10d' % 123        #'       123'
    '%-10d' % 123       #'123       '
    '%10s' % 'abc'      #'       abc'
    '%-5s' % 'abc'      #'abc  '
    '%05d' % 123        #'00123'
    '%7.3f' % 3.1415926  # '  3.141'
   '%07.3f' % 3.1415926  # '003.141'


练习:
输入三行文字,让这些文字依次以20字符的宽度右对齐输出,
如:请输入第1行:hello world
请输入第2行:abcd
请输入第3行:a
输出结果为:
           hello world
                  abcd
                     a

完成后思考:能否以最长字符串的长度进行右对齐显示(左侧填充空格)


****字符串文本解析方法 split 和 join:***
S.split(sep = None)
  将字符串,使用sep作为分隔符分割S字符串,返回分割后的字符串的列表,
  当不给定参数时,用空白字符作为分隔符进行分割
S.join(iterable)
  用可迭代对象中的字符串,返回一个中间用S进行分割的字符串


例:
  s = 'Beijing is capital'
  L = s.split(' ')     #L=['Beijing','is','capital']


  s = '\\'
  L = ['C:','Programe files','python3']
  s2 = s.join(L)     #s2 = b'C:\Programe files\python3


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值