zoukankan      html  css  js  c++  java
  • 018 字符串类型及操作

    一、概述

    • 字符串类型的表示
    • 字符串操作符
    • 字符串处理函数
    • 字符串处理方法
    • 字符串类型的格式化

    二、字符串类型的表示

    由0个或多个字符组成的有序字符序列

    • 字符串由一对单引号或一对双引号表示:"请输入带有符号的温度值: "或者 'C'
    • 字符串是字符的有序序列,可以对其中的字符进行索引:"请""请输入带有符号的温度值: " 的第0个字符

    字符串有 2类共4种 表示方法

    • 由一对单引号或双引号表示,仅表示单行字符串:"请输入带有符号的温度值: "或者 'C'
    • 由一对三单引号或三双引号表示,可表示多行字符串
    '''
    Python
        语言
    '''
    
    • 如果希望在字符串中包含双引号或单引号呢?:'这里有个双引号(")' 或者 "这里有个单引号(')"
    • 如果希望在字符串中既包括单引号又包括双引号呢?:''' 这里既有单引号(')又有双引号 (") '''

    2.1 字符串的序号

    正向递增序号 和 反向递减序号

    018-字符串类型及操作-01.jpg?x-oss-process=style/watermark

    2.2 字符串的使用

    使用[ ]获取字符串中一个或多个字符

    • 索引:返回字符串中单个字符 <字符串>[M]"请输入带有符号的温度值: "[0] 或者 TempStr[-1]
    • 切片:返回字符串中一段字符子串 <字符串>[M: N]"请输入带有符号的温度值: "[1:3] 或者 TempStr[0:-1]

    2.3 字符串切片高级用法

    使用[M: N: K]根据步长对字符串切片

    • <字符串>[M: N],M缺失表示至开头,N缺失表示至结尾:"〇一二三四五六七八九十"[:3] 结果是 "〇一二"
    • <字符串>[M: N: K],根据步长K对字符串切片:
      • "〇一二三四五六七八九十"[1:8:2] 结果是 "一三五七"
      • "〇一二三四五六七八九十"[::-1] 结果是 "十九八七六五四三二一〇

    2.4 字符串的特殊字符——转义符

    • 转义符表达特定字符的本意:"这里有个双引号(")" 结果为 这里有个双引号(")
    • 转义符形成一些组合,表达一些不可打印的含义:""回退 " "换行(光标移动到下行首) " " 回车(光标移动到本行首)

    三、字符串操作符

    3.1 由0个或多个字符组成的有序字符序列

    操作符及使用 描述
    x+y 连接两个字符串x和y
    n*x 或 x*n 复制n次字符串x
    x in s 如果x是s的子串,返回True,否则返回False

    3.2 获取星期字符串

    • 输入:1-7的整数,表示星期几
    • 输出:输入整数对应的星期字符串
    • 例如:输入3,输出 星期三
    # WeekNamePrintV1.py
    
    weekStr = "星期一星期二星期三星期四星期五星期六星期日" 
    weekId = eval(input("请输入星期数字(1-7):"))
    pos = (weekId – 1 ) * 3
    print(weekStr[pos: pos+3])
    
    # WeekNamePrintV2.py
    
    weekStr = "一二三四五六日"
    weekId = eval(input("请输入星期数字(1-7):")) 
    print("星期" + weekStr[weekId-1])
    

    四、字符串处理函数

    一些以函数形式提供的字符串处理功能

    函数及使用 描述
    len(x) 长度,返回字符串x的长度:len("一二三456") 结果为 6
    str(x) 任意类型x所对应的字符串形式:str(1.23)结果为"1.23" str([1,2])结果为"[1,2]"
    hex(x) 或 oct(x) 整数x的十六进制或八进制小写形式字符串:hex(425)结果为"0x1a9" oct(425)结果为"0o651"
    chr(u) x为Unicode编码,返回其对应的字符
    ord(x) x为字符,返回其对应的Unicode编码

    4.1 Unicode编码

    Python字符串的编码方式

    • 统一字符编码,即覆盖几乎所有字符的编码方式
    • 从0到1114111 (0x10FFFF)空间,每个编码对应一个字符
    • Python字符串中每个字符都是Unicode编码字符

    4.1.1 一些有趣的例子

    "1 + 1 = 2 " + chr(10004)
    
    '1 + 1 = 2 ✔'
    
    "这个字符♉的Unicode值是:" + str(ord("♉"))
    
    '这个字符♉的Unicode值是:9801'
    
    for i in range(12):
        print(chr(9800 + i), end="")
    
    ♈♉♊♋♌♍♎♏♐♑♒♓
    

    五、字符串处理方法

    "方法"在编程中是一个专有名词

    • "方法"特指<a>.<b>()风格中的函数<b>()
    • 方法本身也是函数,但与<a>有关,<a>.<b>()风格使用
    • 字符串及变量也是<a>,存在一些方法

    六、字符串内置方法

    一些以方法形式提供的字符串处理功能

    方法及使用 描述
    str.lower() 或 str.upper() 返回字符串的副本,全部字符小写/大写:"AbCdEfGh".lower() 结果为 "abcdefgh"
    str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成 :"A,B,C".split(",") 结果为['A','B','C']
    str.count(sub) 返回子串sub在str中出现的次数:"a apple a day".count("a") 结果为 4
    str.replace(old, new) 返回字符串str副本,所有old子串被替换为new :"python".replace("n","n456") 结果为 "python456"
    str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选:"python".center(20,"=") 结果为 '=python='
    str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符:"= python= ".strip(" =np") 结果为

    "ytho"
    str.join(iter)|在iter变量除最后元素外每个元素后增加一个:str ",".join("12345") 结果为 "1,2,3,4,5" #主要用于字符串分隔等

    七、字符串类型的格式化

    格式化是对字符串进行格式表达的方式

    • 字符串格式化使用.format()方法,用法如下:<模板字符串>.format(<逗号分隔的参数>)
    • 字符串格式化使用f-string方法,用法如下:f<模板{<逗号分隔的参数>}字符串>

    7.1 f-string方法的格式控制

    {<参数序号> : <格式控制标记>}

    : <填充> <对齐> <宽度> <,> <.精度> <类型>
    引导符号 用于填充的单个字符 < 左对齐
    > 右对齐
    ^ 居中对齐
    槽设定的输出宽度 数字的千位分隔符 浮点数小数 或 字符串最大输出长度 整数类型 b,c,d,o,x,X
    浮点数类型e,E,f,%
    "{0:=^20}".format("PYTHON")
    
    '=======PYTHON======='
    
    "{0:*>20}".format("BIT")
    
    '*****************BIT'
    
    "{:10}".format("BIT")
    
    'BIT       '
    
    "{0:,.2f}".format(12345.6789)
    
    '12,345.68'
    
    "{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)
    
    '110101001,Ʃ,425,651,1a9,1A9'
    
    "{0:e},{0:E},{0:f},{0:%}".format(3.14)
    
    '3.140000e+00,3.140000E+00,3.140000,314.000000%'
    

    八、单元小结

    • 正向递增序号、反向递减序号、<字符串>[M:N:K]
    • +、*、len()、str()、hex()、oct()、ord()、chr()
    • .lower()、.upper()、.split()、.count()、.replace()
    • .center()、.strip()、.join()、.format()格式化
  • 相关阅读:
    Byteart Retail V3 全新的面向.NET与领域驱动设计的企业应用实践案例
    算法设计和数据结构学习堆排序
    OutputCacheProvider OutputCache的一点点认识
    使用beetle简单地实现高效的http基础服务
    The IoC container
    使用Visual Studio 2010进行UI自动化测试
    PortalBasic Java Web 应用开发框架 v2.6.1(源码、示例及文档)
    发展中的 CSS3
    C#数据结构与算法揭秘十
    Sql Server Profiler跟踪查询
  • 原文地址:https://www.cnblogs.com/nickchen121/p/11183611.html
Copyright © 2011-2022 走看看