python基础之变量类型string

变量类型-String

  1. 类型
    python变量分为可变性和不可变性两种,数字、字符串和元组是不可变性;列表和字典是可变性变量。

        s='python'
        s[0]='P' #error
    
  2. 引号

    单引号和双引号等价,可以嵌套使用

        print('tom say:\"how are you\"')
        print('tom say:"how are you"')
    

    三引号
    三引号包含多行字符串常量,所有行和合并在一起,并在每行末尾增加一个换行符。
    doc
    当把三引号字符串放在代码开始时,可以通过下面两种方式输出:

         """
               line 1 hello
               line2
               line3'''line3-content'''
               <html>
                     <body></body>
               </html>
    
         """
         #命令行
         python test.py __doc__
         
         #代码文件中
         
         print(__doc__)
    

    必须放在第一行;
    每个文件只能有一条

  3. 转义字符

    # \(在行尾时)	续行符
    a=12
    b=12
    c=10
    d=a+\
      b+\
      c
    
    print(d)
    
    # \\	反斜杠符号
    
    

    raw 字符串

        myfile=open('c:\new\text.dat')
        #这里\n \t 会被认为是转义字符,为了解决可以这么写
        myfile=open(r'c:\new\text.dat')
        myfile=open('c:\\new\\text.dat')
        
        #也支持反斜杠的方式
         myfile=open('c:/new/text.dat')
         
    

    ord(‘a’)用于测定‘a’的ASCII值。

  4. Python字符串运算符

    操作符描述实例
    r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。print r’\n’ \n print R’\n’ \n
  5. Python字符串

    python的字串列表有2种取值顺序:

    1. 从左到右索引默认0开始的,最大范围是字符串长度少1
    2. 从右到左索引默认-1开始的,最大范围是字符串开头
      如果你要实现从字符串中获取一段子字符串的话,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

    比如:

     ```
         s = 'ilovepython'
         # s[1:5]的结果是love。
         # print s[-6:]的结果就是python
         # print s[-6:-2]
         
         str='0123456789'
         print(str[1:10:2])          #1,3,5,7,9 第三个参数表示步长
         print(str[::2])             #02468  
         print(str[::-1])            #9876543210 反转
     ```
    

    当使用以冒号分隔的字符串,python返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。

    上面的结果包含了s[1]的值l,而取到的最大范围不包括上边界,就是s[5]的值p。

    加号(+)是字符串连接运算符,星号(*)是重复操作

     ```
     print s*2
     结果为:ilovepythonilovepython
     ```
    
  6. 字符串输出

    语法说明

    格式化符号说明备注 %s 字符串输出 string%10s 右对齐,占位符 10位%-10s 左对齐,占位符 10 位 %.2s 截取 2 位字符串 %10.2s10 位占位符,截取两位字符串。

    举个栗子:

    print('%s' % 'hello world')       # 字符串输出hello world
    print('%20s' % 'hello world')     # 右对齐,取20位,不够则补位         hello world
    print('%-20s' % 'hello world')    # 左对齐,取20位,不够则补位hello world         
    print('%.2s' % 'hello world')     # 取2位he
    print('%10.2s' % 'hello world')   # 右对齐,取2位        he
    print('%-10.2s' % 'hello world')  # 左对齐,取2位he
    
  7. 格式输出

    import math
    s='hello,world'
    
    print(str(s))
    print(repr(s))
    
    print ('name is:'+repr(s))
    print ('name is:',repr(s))
    
    for x in range(1, 11):
        # print(repr(x).rjust(2), repr(x * x).rjust(3),repr(x*x*x).rjust(4))
        print('{0:2d} {1:3d} {2:4d}'.format(x, x * x, x * x * x))
    
    str01='12.3'
    print(str01.zfill(2))
    
    print('{1} and {0}'.format('spam', 'eggs'))
    
    print('This {food} is {adjective}.'.format(food='spam', adjective='absolutely horrible'))
    
    print('This {food} is {adjective}.'.format(food='spam', adjective='absolutely horrible'))
    
    print('The story of {0}, {1}, and {other}.'.format('Bill', 'Manfred',other='Georg'))
    
    print('The value of PI is approximately {0:.3f}.'.format(math.pi))
    

    一种是通过str函数,他会把值转换为合理形式的字符串,以便用户可以理解;另一种是通过repr函数,她会创建一个字符串,以合法的Python表达式的形式来表示值。

    repr也可以做``反引号的实现。如果希望答应一个包含数字的句子,那么反引号就很有用了。比如:

    temp = 100
    print('hello'+temp)  //error
    print('hello'+`temp`)  //等价 print('hello'+repr(temp))
    
    s='''hello
    world'''
    
    print(s)
    print(repr(s))   # 'hello\nworld'
    

    三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。

  8. 内建函数

    1. 统计单词出现的次数

          str='hello world hello china'
      
          num=str.count('hello',0,len(str))
      
          print(num)
      
    2. find():查找

          word='hello python,hello,world'
      
          res01=word.find('hello',4,8)
      
    3. replace: 替换

          word='hello python,hello,world'
          res02=word.replace('hello','hi',2)
      
    4. split(): 截取

    5. join(): 拼接

          arr=list(word)
      
          str_arr=','.join(arr)
          print(str_arr)
          str2='python'.join(['_one_','_two_','_three_'])
      
    6. upper() lower():大写、小写

    7. strip() lstrip() rstrip() len(s): 去除左右空格、去除左空格、去除右空格

    方法描述
    string.capitalize()把字符串的第一个字符大写
    string.center(width)返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
    string.count(str, beg=0, end=len(string))返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数
    string.decode(encoding=‘UTF-8’, errors=‘strict’)以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除非 errors 指 定 的 是 ‘ignore’ 或 者’replace’string.encode(encoding=‘UTF-8’, errors=‘strict’)以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是’ignore’或者’replace’
    string.endswith(obj, beg=0, end=len(string))检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
    string.expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8。
    string.find(str, beg=0, end=len(string))检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
    string.format()格式化字符串string.index(str,beg=0,end=len(string))
    string.isalnum()如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
    string.isalpha()如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
    string.isdigit()如果 string 只包含数字则返回 True 否则返回 False.
    string.islower()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
    string.isnumeric()如果 string 中只包含数字字符,则返回 True,否则返回 False
    string.isspace()如果 string 中只包含空格,则返回 True,否则返回 False.
    string.istitle()如果 string 是标题化的(见 title())则返回 True,否则返回 False
    string.isupper()如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
    string.join(seq)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
    string.ljust(width)返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
    string.lower()转换 string 中所有大写字符为小写.、
    string.lstrip()截掉 string 左边的空格
    max(str)返回字符串 str 中最大的字母。
    min(str)返回字符串 str 中最小的字母。
    string.partition(str)有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
    string.replace(str1, str2, num=string.count(str1))把 string 中的 str1 替换成 str2,如果 num 指定,则替换不超过 num 次.
    string.rfind(str, beg=0,end=len(string) )类似于 find()函数,不过是从右边开始查找.
    string.rindex( str, beg=0,end=len(string))类似于 index(),不过是从右边开始.
    string.rjust(width)返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
    string.rpartition(str)类似于 partition()函数,不过是从右边开始查找.
    string.rstrip()删除 string 字符串末尾的空格.
    string.split(str="", num=string.count(str))以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
    string.splitlines([keepends])按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。
    string.startswith(obj, beg=0,end=len(string))检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
    string.strip([obj])在 string 上执行 lstrip()和 rstrip()
    string.swapcase()翻转 string 中的大小写
    string.title()返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
    string.upper()转换 string 中的小写字母为大写
    string.zfill(width)返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0
    string.isdecimal()isdecimal()方法检查字符串是否只包含十进制字符。这种方法只存在于unicode对象。
  9. 浮点数输出

    语法说明

    格式化符号说明备注 %f 保留小数点后面六位有效数字 float%e 保留小数点后面六位有效数字 %g 在保证六位有效数字的前提下,使用小数方式,否则使用科学计数法。

    举个栗子:

        print('%f' % 1.11)         # 默认保留6位小数1.110000
        print('%.1f' % 1.11)       # 取1位小数1.1
        print('%e' % 1.11)         # 默认6位小数,用科学计数法1.110000e+00
        print('%.3e' % 1.11)       # 取3位小数,用科学计数法1.110e+00
        print('%g' % 1111.1111)    # 默认6位有效数字1111.11
        print('%.7g' % 1111.1111)  # 取7位有效数字1111.111
        print('%.2g' % 1111.1111)  # 取2位有效数字,自动转换为科学计数法1.1e+03
    
  10. 帮助文档

    在命令行中:

        s='hello'
        dir(s)
        help(s.replace) # 查看函数的作用 按q退出
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值