您的位置:首页 > 编程语言 > Python开发

python字符串

2019-08-12 19:50 50 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_42281813/article/details/99330119

字符串 string

  • 字符串操作

    字符串的内容几乎可以包含任何字符,英文字符也行,中文字符也行。

    字符串既可用单引号括起来,也可用双引号括起来

  • 假如字符串内容中包含了单引号,则可以使用双引号将字符串括起来

  • 语法内涵双引号,用单引号括,内涵单引号,用双引号括,否则语法错误

  • 如果内包含单引号,双引号 使用反斜线 \ 在要转义引号前使用

  • 拼接字符串

      长字符串可以使用三引号括起来

    • 字符串紧挨在一起,python会自动拼接,如果使用逗号会变成两个字符串,但是不能真正用于拼接字符串。

    • + 号来拼接字符串运算符

    • 整数转换字符串:str()是python内置类型 repr()是函数,如果拼接整数跟字符串需要先把整数转换成字符串 str()或repr()

      repr()另一种功能:输出会以python表达式形式来表示值 交互式模式下python会自动使用repr()函数处理该变量或表达式。

  • 允许使用 \ 来转义长字符串来换行,转义之后不会影响输出 对于个别算法也可以转行

  • 原始字符串 r :由于 \ 在python中特殊的,比如路径python会把看作 \ 来处理,可以在字符串前面加入r,python就不会把反斜线当成特殊字符。 或使用 \

      原始字符串包含的引号,同样需要转义

  • 字符串的内容几乎可以包含任何字符,英文字符也行,中文字符也行。

      字符串既可用单引号括起来,也可用双引号括起来

    • 假如字符串内容中包含了单引号,则可以使用双引号将字符串括起来

    • 语法内涵双引号,用单引号括,内涵单引号,用双引号括,否则语法错误

    • 如果内包含单引号,双引号 使用反斜线 \ 在要转义引号前使用

  • input()函数

      用户输入 input()

      input()获取用户输入 input函数返回的总是字符串

      python2 用raw_input()来获取用户输入

  • byets转换

      bytes类型及用法

      bytes 类型,用于代表字节串,字节串(bytes)由多个字节组成,以字节为单位进行操作。不可变序列

    • 通过b前缀指定hello是bytes类型的值

    • 调用bytes方法将字符串转成bytes对象 encoding = 'utf-8’指定编码格式

    • 利用encode字符编码直接把字符串转成bytes对象

    • 利用decode字符编码直接把bytes对象转成str对象

  • python转义字符及用法

      \b 退格符,\n 换行符,\r 回车符,\t 制表符," 双引号,’ 单引号,\ 反斜线

      \n 换行

    • \t 制表符 (一个\t相等于空格)

  • 拼接字符串

      长字符串可以使用三引号括起来

    • 字符串紧挨在一起,python会自动拼接,如果使用逗号会变成两个字符串,但是不能真正用于拼接字符串。

    • + 号来拼接字符串运算符

  • 整数转换字符串

      str()是python内置类型 repr()是函数,如果拼接整数跟字符串需要先把整数转换成字符串 str()或repr()

    • repr()另一种功能:输出会以python表达式形式来表示值 交互式模式下python会自动使用repr()函数处理该变量或表达式。

    • 允许使用 \ 来转义长字符串来换行,转义之后不会影响输出 对于个别算法也可以转行

    • 原始字符串 r :由于 \ 在python中特殊的,比如路径python会把看作 \ 来处理,可以在字符串前面加入r,python就不会把反斜线当成特殊字符。 或使用 \

      原始字符串包含的引号,同样需要转义

  • python格式化字符串 %s

      %s 逻辑:首先格式化字符串(相当于字符串模板),该格式化字符串中包含一个“%s”占位符,它会被第三部分的变量或表达式的值代替;第二部分固定使用“%”作为分隔符,称为转换说明符。

      作用:作用相当于一个占位符,它会被后面的变量或表达式的值代替。“%s”指定将变量或值使用 str() 函数转换为字符串。

    • 如果格式化字符串中包含多个“%s”占位符,应该提供与值对应的多个变量,并使用圆括号将这些变量括起来。

  • 转换说明符:

      在分隔符%后面可以指定字符串最小宽度为整型数

    • 默认情况,转换出来的字符串总是右对齐的,不够宽度时左边补充空格

      -:指定左对齐。
    • +:表示数值总要带着符号(正数带“+”,负数带“-”)。
    • 0:表示不补充空格,而是补充 0。 可以同时存在
  • 符号:

      d, i:转换为带符号的十进制形式的整数
    • o:转换为带符号的八进制形式的整数
    • x:转换为带符号的十六进制形式的整数
    • X:转换为带符号的十六进制形式的整数
    • e:转化为科学计数法表示的浮点数(e 小写)
    • E:转化为科学计数法表示的浮点数(E 大写)
    • f,F:转化为十进制形式的浮点数
    • g:智能选择使用 f 或 e 格式
    • G:智能选择使用 F 或 E 格式
    • C:转换为单字符(只接受整数或单字符字符串)
    • r:使用 repr() 将变量或表达式转换为字符串
    • s:使用 str() 将变量或表达式转换为字符串
  • 演示:

      - + 0

    • 指定小数点后的数字位数:如果转换的是字符串,Python 允许指定转换后的字符串的最大字符数。这个标志被称为精度值10

  • python截取字符串(索引)

      索引单个字符:

      Python 字符串直接在方括号([])中使用索引即可获取对应的字符,字符串中第一个字符的索引为 0、第二个字符的索引为 1

      倒着获取索引:最后一个字符的索引为 -1,倒数第二个字符的索引为 -2······依此类推。

  • 截取范围内的字符:包括开头不包括结尾

      使用范围来获取字符串的中间“一段”(被称为子串)

      如果索引带-1 -1位置不会被取出,可以写作([起始位置:])

    • 允许省略起始索引或结束索引。如果省略起始索引,相当于从字符串开始处开始截取;如果省略结束索引,相当于截取到字符串的结束处

    • 倒着取范围从的大数到小数([-6:-3])

  • 全局内置的 min() 和 max() 函数获取字符串中最小字符和最大字符。

      检测字符串中占内存的字节。

  • 获取字符串的长度,则可调用 Python 内置的 len() 函数。

      可以指定范围检测

  • Python字符串大小写转换(3种)函数及用法

      字符串由内建的 str 类代表

    • 帮助查看教程:

      dir():列出指定类或模块包含的全部内容(包括函数、方法、类、变量等),以“”开头、“”结尾的方法被约定成私有方法,不希望被外部直接调用

    • help():查看某个函数或方法的帮助文档。查看方法:help(str.lower)

    • 在 str 类中与大小写常用方法:

      title():将每个单词的首字母改为大写。

    • lower():将整个字符串改为小写。

    • upper():将整个字符串改为大写

  • Python去除字符串中空格(删除指定字符)的3种方法

      str常用的方法来删除空白:

      strip():删除字符串前后的空白。

    • lstrip():删除字符串前面(左边)的空白。

    • rstrip():删除字符串后面(右边)的空白。

  • 删除字符串前后指定宇符:(警告如果两边有空格无法删掉字符,首先要去除空)

  • Python字符串操作(查找,替换,分割和连接)方法及其使用

      判断:

      startswith():判断字符串是否以指定子串开头,包含返回True,不包含返回False。

    • endswith():判断字符串是否以指定子串结尾,包含返回True,不包含返回False。

  • 查询:

      find():查找指定子串在字符串中出现的位置,如果查找的指定字串有多个返回第一个位置。如果没有找到指定子串,则返回 -1。 也可以在参数指定位置 s.find(‘n’,3)

    • index():查找指定子串在字符串中出现的位置,如果没有找到指定子串,则引发 ValueError 错误。

  • 替换:

      replace():使用指定子串替换字符串中的目标子串。可以指定替换几个该字串。

    • translate():使用指定的翻译映射表(所有字符编码)对字符串执行替换。

      Python 为由类提供了一个 maketrans() 方法,通过该方法可以非常方便地创建翻译映射表。

  • 分割:

      str 的 split() 和 join() 方法互为逆操作。split() 方法用于将字符串分割成多个短语,而 join() 方法则用于将多个短语连接成字符串。

    • split():将字符串按指定分割符分割成多个短语。

      根据空格来分割(可指定分割几个)

    • 根据.点来分割(可指定分割几个)

  • 连接:

      str 的 split() 和 join() 方法互为逆操作。split() 方法用于将字符串分割成多个短语,而 join() 方法则用于将多个短语连接成字符串。

    • join():将多个短语连接成字符串。(前提是必须配合split来使用)

  • Python 身份运算符

  • is 和 not is 运算符可以判断两个对象是否相同

  • Python 成员运算符

      in 运算符判断是否包含某个子串,包含返回True,不包含返回False not in不在 包含返回False,不包含返回True

    • Python isdigit() 方法检测字符串是否只由数字组成。

    • 判断字符串是否包含元素

    • not in 判断字符串不包含该元素

  • Python赋值运算符

      赋值运算符用于为变量或常量指定值,Python 使用“=”作为赋值运算符。通常,使用赋值运算符将表达式的值赋给另一个变量。

    • 也可使用赋值运算利将一个变量的值赋给另一个变量

    • Python 的赋值表达式是有值的,赋值表达式的值就是被赋的值,因此 Python 支持连续赋值

    • 赋值运算符还可用于将表达式的值赋给变量。

    • Python 的赋值运算符也支持同时对多个变量赋多个值。赋值运算符还可与其他运算符结合

      程序把多个值赋给一个变量时,Python 会自动将多个值封装成元组。这种功能被称为序列封包。

    • 程序允许将序列(元组或列表等)直接赋值给多个变量,此时序列的各元素会被依次赋值给每个变量(要求序列的元素个数和变量个数相等)。这种功能被称为序列解包。

      同时把n个数据赋值给一个变量,是元组类型,叫做序列封包。

    • 再创建多个跟n相对应的变量,并打印会看见程序自动把n个数据分配给相对应的变量叫序列解包。

      元组:

    • 列表:

  • 可以实现交换变量的值:

  • 在序列解包时可以解出部分变量,剩下的依然使用列表保存变量。

      Python 允许在左边被赋值的变量之前添加“*”,那么该变量就代表一个列表,可以保存多个集合元素。

  • Python算数运算符

      扩展后的赋值运算符: +=:对于x += y,即对应于x = x + y。
    • -=:对于x -= y,即对应于x = x - y。
    • *=:对于x *= y,即对应于x = x * y。
    • /=:对于x /= y,即对应于x = x / y。
    • //=:对于x //= y,即对应于x = x // y。
    • %=:对于x %= y,即对应于 x = x % y。
    • **=:对于x = y,即对应于x=xy。
    • &=:对于x&=y,即对应于x = x & y。
    • |=:对于x |= y,即对应于x = x | y。
    • ^=:对于x ^= y,即对应于x = x ^ y 。
    • <<=:对于x <<= y,即对应于x = x << y。
    • >>=:对于x >>= y,即对应于x = x >> y。
  • Python算术运算符

      Python 支持所有的基本算术运算符,这些算术运算符用于执行基本的数学运算,如加、减、乘、除和求余等

    • +:加法运算符

      两个数相加
    • 拼接字符串(连接运算符)
  • -:减法运算符

      两个数相减

    • 变量可以求负 可以负负得正

  • *:乘法运算符

      两个数相乘

    • 同时可以复制多个字符串连接起来

  • / 或 //:除法运算符

      “/”表示普通除法,使用它除出来的结果与平常数学计算的结果是相同的(即除不尽时,会产生小数部分)
    • “//”表示整除,使用它除出来的结果只有整数部分,小数部分将会被舍弃 0可以做除数,但是0不可以被整出否则报错:ZeroDivisionError
  • %:求余运算符

      不要求求余运算符的两个操作数都是整数,支持对浮点数求余。
    • 求余运算的结果不一定总是整数,它是使用第一个操作数来除以第二个操作数,得到一个整除的结果后剩下的值就是余数 求余运算的第二个操作数不能是 0,否则程序会报出 ZeroDivisionError 错误。
  • **:乘方运算符

      ”作为乘方运算符,这是一个使用非常方便的运算符。由于开方其实是乘方的逆运算,因此实际上使用“”也可进行开方运算
  • Python位运算符

      Python 支持的位运算符: &:按位与。
    • |:按位或。
    • ^:按位异或。
    • ~:按位取反。
    • <<:左位移运算符。
    • >>:右位移运算符。
  • Python bool类型

      真(对),Python 使用 True 来代表,假(错),Python 使用 False 来代表。

    • 比较运算符用于判断两个值(这两个值既可以是变量,也可以是常量,还可以是表达式)之间的大小,比较运算的结果是 bool 值(True 代表真,False 代表假)。

      常量就是 程序运行中 不可以改变的量(数据)
    • 变量就是 程序运行中 可以改变的量(数据)
    • 运算符和运算对象组成的,单独的一个运算对象(常量/变量)也可以叫做表达式
  • 实际上 True 也可被当成整数 1 使用,False 也可被当成整数 0 使用。也就是说,True、False 两个值完全可以参与各种算术运算。

  • Python 比较运算符(关系运算符)

      Python 支持的比较运算符

      >:大于,如果运算符前面的值大于后面的值,则返回 True;否则返回 False。

    • >=:大于或等于,如果运算符前面的值大于或等于后面的值,则返回 True;否则返回 False。

    • <:小于,如果运算符前面的值小于后面的值,则返回 True;否则返回 False。

    • <=:小于或等于,如果运算符前面的值小于或等于后面的值,则返回 True;否则返回 False。

    • ==:等于,如果运算符前面的值等于后面的值,则返回 True;否则返回 False。

    • !=:不等于,如果运算符前面的值不等于后面的值,则返回 True;否则返回 False。

    • is:判断两个变量所引用的对象是否相同,如果相同则返回 True。 is 要求两个变量引用同一个对象

      引用同一个对象

  • is not:判断两个变量所引用的对象是否不相同,如果不相同则返回 True。

  • 通过 id() 函数计算两个对象时返回相同的地址。

  • Python逻辑运算符

      and:与,前后两个操作数必须都是 True 才返回 True;否则返回 False。

    • or:或,只要两个操作数中有一个是 True,就可以运回 True;否则返回 False;

      为了保证逻辑运算的顺序,且有括号和没括号的输出结果是一样的,建议使用圆括号来提高程序的可读性。
  • not:非,只需要一个操作数,如果操作数为 True,则返回 False;如果操作数为 False,则返回 True。

  • Python三目运算符(三元运算符)

      三目运算符的 if 语句的语法格式:

      True_statements if expression else False_statements

      三目运算符的规则是:先对逻辑表达式 expression 求值,如果逻辑表达式返回 True,则执行并返回 True_statements 的值;如果逻辑表达式返回 False,则执行并返回 False_statements 的值

    • 两种方式:

      正规方式:

    • 控制台输出提示信息可以:a = 5 b = 3 c = 6 d = 5

  • Python 允许在三目运算符的 True_statements 或 False_statements 中放置多条语句。

      多条语句以英文逗号隔开:每条语句都会执行,程序返回多条语句的返回值组成的元组。

    • 多条语句以英文分号隔开:每条语句都会执行,程序只返回第一条语句的返回值。

    • True_statements 为 print(“条件”),‘a大于b’,这两条语句都会执行,程序将会返回这两条语句的返回值组成的元组。

      True_statements 包含两条语句,但程序只会返回第一条语句 print(”crazyit”) 的返回值,该语句同样返回 None,因此相当于 str 的返回值为 None。

    • 由于 print() 函数没有返回值,相当于它的返回值是 None a = 5 b = 3 c = 6 d = 5

    • 将语句中的逗号改为分号,将逗号之后的语句改为赋值语句。a = 5 b = 3 c = 6 d = 5

  • 三目运算符支持嵌套,通过嵌套三目运算符,可以执行更复杂的判断

      首先执行 a > c 成立print(‘a 大于等于 c’) 不成立执行else 因为嵌套下一层 执行下一层如果下一层if跟上一层else同时成立 直接打印print(‘a 小于等于 c’) 不成立执行elseprint(‘a 等于 c’)

      第一层else 跟下一层if 不成立时:

    • 第一层else 跟下一层if 同时成立时:

  • Python运算符优先级一览表

      所有的数学运算都是从左向右运算。

    • 单目运算符、赋值运算符和三目运算符是从右向左运算的。

    • 乘法和加法是两个可结合的运算符,这两个运算符左右两边的操作数可以互换位置而不会影响结果。

    • 运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。注意:使用“()”就可以改变程序的执行顺序,尽量使用“()”来控制表达式的执行顺序。

      三目运算符支持嵌套,通过嵌套三目运算符,可以执行更复杂的判断

      首先执行 a > c 成立print(‘a 大于等于 c’) 不成立执行else 因为嵌套下一层 执行下一层如果下一层if跟上一层else同时成立 直接打印print(‘a 小于等于 c’) 不成立执行elseprint(‘a 等于 c’)

      第一层else 跟下一层if 不成立时:

      [外链图片转存中…(img-yVshf873-1565610625201)]

    • 第一层else 跟下一层if 同时成立时:

      [外链图片转存中…(img-wOLraBkf-1565610625201)]

  • Python运算符优先级一览表

      所有的数学运算都是从左向右运算。

    • 单目运算符、赋值运算符和三目运算符是从右向左运算的。

    • 乘法和加法是两个可结合的运算符,这两个运算符左右两边的操作数可以互换位置而不会影响结果。

    • 运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。注意:使用“()”就可以改变程序的执行顺序,尽量使用“()”来控制表达式的执行顺序。

  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: