美文网首页
2019-03-11

2019-03-11

作者: QiuXian | 来源:发表于2019-03-11 20:28 被阅读0次

    """秃子养成记"""

    1.什么是字符串

    字符串是Python内置的一种容器型数据类型,不可变、有序;
    将单引号或者双引号作为容器,里面可以根据情况放多个字符
    不可变:指的是内容的值和顺序不可变
    有序:一旦字符串确定,字符串中字符的位置固定(每个字符是第几个字符是确定的)

    2.字符串中的内容 - 字符

    Python中只有字符的概念,没有字符对应的数据类型
    字符串的基本单元就是字符,又叫字符串的元素
    a.基本字符 - 数字、字母、常用符号、中文等
    b.转义字符 - 通过转义符号\后面跟不同的符号来表示特殊功能或者特殊意义的字符
    \n - 换行
    ' - 一个单引号
    " - 一个双引号
    \ - 一个反斜杠
    \t - 制表符

    阻止转义:在字符串的最前面加r/R,可以阻止字符串的转义字符转义(一般用于正则表达式)

    c.编码字符 - \u后面跟四位的十六进制数,来表示一个字符。这个四位的十六进制数对应的值是字符的编码值

     0-9,a/A-f/F
    print('werwq+\u4f33')
    

    3.字符编码

    Python中的字符采用的是Unicode编码
    计算机存储数据的时候只能存数字,而且存的是数字的补码(是以二进制的格式进行存储)

    100  # 十进制数
    print(bin(100))  # bin(数字)  - 获取指定数字对应的二进制
    print(0b1100100)
    print(oct(100))  # oct(数字)  - 获取指定数字的八进制
    print(0o144)
    print(hex(100))   # hex(数字)  -  获取指定数字的十六进制
    print(0x64)
    

    编码:每个字符在计算机存储的时候都会对应一个固定且唯一的数字,这个数字就是这个字符的编码。
    每个字符和数字的一一对应关系就是编码表,常见的编码表有:ASCII表和Unicode编码表
    ASCII码表只对数字字符、字母字符、英文符号进行编码
    Unicode编码表是对ASCII的扩充,能够对世界上所有的符号进行编码:4e00-9fa5
    chr(编码值) - 获取编码值对应的字符
    ord(字符) - 获取字符对应的编码值
    print(chr(37041),chr(40092))
    print(ord('邱'),ord('鲜'))

    # for code in range(0x4e00,0x9fa5):
    #     print(chr(code),end=',')  # 获取所有的汉字
    

    1.获取字符 - 取字符串内容

    a.获取单个字符
    """
    a.语法:字符串[下标] - 根据下表获取字符串中对应的字符,结果是获取到的字符
    b.说明:字符串 - 可以是字符串值,也可以是字符串是变量,结果是字符串的表达式都可以
    [] - 固定写法
    下标 - 又叫索引,一旦字符串确定,那么字符串中的每个字符都会对应一个下标
    表示这个字符在字符串中的位置。下标的范围是0~到字符串长度减1
    0表示第一个,1表示第二个,以此类推。(通用的)
    下标范围还可以是-1到-字符串长度减1,-1表示倒数第一个

    c.注意:获取单个字符的时候下标不能越界
    """

    1.2获取部分字符(字符串切片)

    """
    a.语法:字符串[开始下标:结束下标:步长] - 从开始下标开始,获取到结束下标为止
    b.说明:可以是字符串值,也可以是字符串是变量,结果是字符串的表达式都可以
    [],: - 固定写法
    开始下标、结束下标 - 下标值、开始下标可以取到,结束下标对应的字符一定取不到
    步长 - 整数,可以使正也可以是负
    c.注意:下标可以越界
    如果步长为正(从前往后取),开始下标对应的字符要在结束下标对应的字符前才能获取到值
    如果步长为负(从后往前取),开始下标对应的字符要在结束下标对应字符的后面才能获取到值

    """
    """
    切片的语法可以对步长、开始下标和结束下标进行省略
    1.省略步长(步长默认为1)
    字符串[开始下标:结束下标] == 字符串[开始下标:结束下标:1]
    2.省略开始下标
    字符串[:结束下标:步长] - 如果不出为正,从字符串开头往后取:如果步长为负,从字符串最后一个字符串往前取
    字符串[开始下标::步长] - 如果步长为正,取到最后一个字符为止;如果步长为负,取到第一个字符为止
    """

    1.3 遍历字符串 - 一个一个的取出所有的字符

    """
    方法1:直接遍历
    for 变量 in 字符串:
    循环体

    方法2:通过遍历下标,来遍历字符串
    for 下标 range(字符串长度):
    字符串[下标]
    """

    for char in '2345678wety':
        print(char)
    str3='erwfwsfawet2345r23'
    for index in range(len(str3)):
        print('================',str3[index])
    

    字符串相关运算

    a.数学运算:字符串支持加法运算和乘法运算
    语法:字符串1 + 字符串2 - 将两个字符串拼接在一起产生一个新的字符串
    注意:加号两边,必须都是数字。或者都是字符串,数字和字符串不能混合相加!

    语法:字符串 * 正整数 / 正整数 * 字符串 - 指定的字符串重复指定次数,产生一个新的字符串

    b.比较运算:字符串支持所有的比较运算
    字符串1 == 字符串2,字符串1 != 字符串2 - 判断两个字符串是否相等
    两个字符串比较大小:让两个字符串相同位置的字符一一比较,找到第一对儿不相等的字符,判断编码值的大小

    应用:
    判断一个字符是否字母:'a'<=char<'z' or 'A'<=char<='Z'
    判断一个字符是否是数字:'0'<=char<='9'
    判断一个字符是否是中文(4e00~9fa5):\u4e00<=char<=\u9fa5 或者 0x4e00<=ord(char)<=0x9fa5

    练习:输入一个任意字符串,统计输入内容中字母的个数

    num1=input('请输入:')
    a=0
    for char in range(len(num1)):
        if'a' <= num1[char] < 'z' or 'A' <= num1[char] <= 'Z':
            a += 1
    print('字母个数是:%d'% a)
    

    3.in h和 not in 操作

    字符串1 in 字符串2 - 判断字符串1是否在字符串2中(判断字符串2是否包含字符串1)
    字符串1 not in 字符串2 - 判断字符串1是否不在字符串2中(判断字符串2是否不包含字符串1)
    print('abc' in 'abcdeawer') # Ture
    print('abc' not in 'abcwewfdwe') # False

    4.常用内置函数

    len(字符串) - 求字符串长度
    str(数据) - 将其他数据转换成字符串,所有的数据都能转成字符串,转换的时候直接在数据的外面加引号
    print(int('+3423')) # 只有去掉引号后,本身就是一个整数的字符串才能转换成整数
    print(float('234.3')) # 只有去掉引号后,本身就是一个数字的字符串才能转换成浮点型
    print(bool('wert')) # 除了空串会转换成False,其他都会转换成True

    list1=['this','is','a','list']
    print(str)

    1.capitalize() 将字符串的第一个字符转换为大写

    print(str.capitalize())#首字母大写
    

    2.title()返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

    print(str.title())#首字母大写,按空格算进行分割
    
    1. lower()/upper()转换字符串中所有大写/小写字符转换为小写/大写.
    print(str.lower())#转换为小写
    print(str.upper())#转换为大写
    

    4.center(width, fillchar)返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

    print(str.center(50,'*'))
    

    5.ljust(width[, fillchar])返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

    print(str.ljust(50,'*'))
    

    6.rrjust(width, [, fillchar]) 返回一个原字符串右对齐, 并使用fillchar(默认空格)填充至长度
    width的新字符串

    print(str.rjust(50,'*'))
    
    1. endswith(suffix)检查字符串是否以 obj 结束,
      如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
    print(str.endswith('ED'))
    

    8.startswith(str, beg=0,end=len(string))检查字符串是否是以 obj 开头,是则返回 True,
    否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。

    print(str.startswith('One'))
    
    1. expandtabs(tabsize=8)把字符串 string 中的 tab 符号转为空格,tab 符号默认的空格数是 8
     print('\tgs'.expandtabs(1))**注意:此处的tab是指tab符号,而不是tab键打出来的效果
    

    10.find(str, beg=0 end=len(string)) 则检查是否包含在指定范围内,如果包含返回开始的索引值(下标),否则返回-1

    print(str.find('ou'))
    

    11.rfind(str, beg=0,end=len(string))类似于 find()函数,不过是从右边开始查找.

    print(str.rfind('you'))
    
    1. index(str, beg=0, end=len(string))跟find()方法一样,只不过如果str不在字符串中会报一个异常,即返回0.
    print(str.index('ou'))
    

    13.rindex( str, beg=0, end=len(string))类似于 index(),不过是从右边开始.

    print(str.rindex('you'))
    
    1. isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False
    print(str.isalnum())
    
    1. isalpha()如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False
    print(str.isalpha())
    

    16.isdigit()如果字符串只包含数字则返回 True 否则返回 False..

    print(str.isdigit())
    
    1. islower()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
    print(str.islower())
    

    18.isdecimal()检查字符串是否只包含十进制字符,如果是返回 true,否则返回 false。

    print('213'.isdecimal())
    
    1. isnumeric()如果字符串中只包含数字字符,则返回 True,否则返回 False(中文数字也可以)
    print(str.isnumeric())
    
    1. isspace()如果字符串中只包含空白,则返回 True,否则返回 False.
    print(str.isspace())
    

    21.istitle()如果字符串是标题化的(见 title())则返回 True,否则返回 False

    print(str.istitle())
    

    22.isupper()如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

    print(str.isupper())
    

    23.join(seq)以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

    print('*'.join(str))
    
    1. len(string) 返回字符串长度
    print(len(str))
    
    1. lstrip()截掉字符串左边的空格或指定字符。
    print(str.lstrip('O'))
    
    1. rstrip()删除字符串字符串末尾的空格.
    print(str.rstrip())
    
    1. strip([chars])在字符串上执行 lstrip()和 rstrip()
    print(str.strip())
    
    1. max(str)min(str)返回字符串 str 中最大/最小的字母。
    print(max(str))
    print(min(str))
    
    1. replace(old, new [, max])把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。
    print(str.replace('you','I',3))
    

    30.split(str="", num=string.count(str))num=string.count(str)) 以 str 为分隔符截取字符串,如果 num 有指定值,则仅截取 num 个子字符串

    print(str.split('e',2))
    

    ‘e'分隔的符号,2'的含义为将原序列分割为3个部分,为1是割分为两部分,此处可以省略,省略则表示见‘e’就分割

    31 splitlines([keepends])按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表,
    如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

    str2='we\rare\r\nfamily\n'
    print(str2.splitlines())
    print(str2.splitlines(True))
    

    32.swapcase()将字符串中大写转换为小写,小写转换为大写

    print(str.swapcase())#大小写互换
    

    33.zfill (width)返回长度为 width 的字符串,原字符串右对齐,前面填充0

    print(str.zfill(50))
    

    相关文章

      网友评论

          本文标题:2019-03-11

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