zoukankan      html  css  js  c++  java
  • Python3入门教程系列-Python字符串

    参考找一找教程网

    字符串是Python中最受欢迎、最常使用的数据类型。可以通过用引号括起字符来创建它们。 Python将单引号与双引号相同。创建字符串和向一个变量赋值一样简单。 例如 -

    var1 = 'Hello World!'
    var2 = "Python Programming"

    1.访问字符串中的值

    Python不支持字符类型; 字符会被视为长度为1的字符串,因此也被认为是一个子字符串。要访问子串,请使用方括号的切片加上索引或直接使用索引来获取子字符串。 例如 -

    #!/usr/bin/python3
     
    var1 = 'Hello World!'
    var2 = "Python Programming"
     
    print ("var1[0]: ", var1[0])
    print ("var2[1:5]: ", var2[1:5]) # 切片加索引,www.zyiz.net

    当执行上述代码时,会产生以下结果 -

    var1[0]:  H
    var2[1:5]:  ytho

    2.更新字符串

    可以通过将变量分配给另一个字符串来“更新”现有的字符串。 新值可以与其原值相关或完全不同的字符串。 例如 -

    #!/usr/bin/python3
     
    var1 = 'Hello World!'
     
    print ("Updated String :- ", var1[:6] + 'Python')

    当执行上述代码时,会产生以下结果 -

    Updated String :-  Hello Python

    3.转义字符

    下表是可以用反斜杠表示法表示转义或不可打印字符的列表。单引号以及双引号字符串的转义字符被解析。

    反斜线符号十六进制字符描述/说明
    a 0x07 铃声或警报
     0x08 退格
    cx   Control-x
    C-x   Control-x
    e 0x1b Escape
    f 0x0c 换页
    M-C-x   Meta-Control-x
    0x0a 新一行
    nn   八进制符号,其中n在0.7范围内
    0x0d 回车返回
    s 0x20 空格
    0x09 制表符
    v 0x0b 垂直制表符
    x   字符x
    xnn   十六进制符号,其中n0~9a~fA~F范围内

    4.字符串特殊运算符

    假设字符串变量a保存字符串值’Hello‘,变量b保存字符串值’Python‘,那么 -

    运算符说明示例
    + 连接 - 将运算符的两边的值添加 a + b 结果为 HelloPython
    * 重复 - 创建新字符串,连接相同字符串的多个副本 a*2 结果为 HelloHello
    [] 切片 - 给出指定索引中的字符串值,它是原字符串的子串。 a[1] 结果为 e
    [:] 范围切片 - 给出给定范围内的子字符串 a[1:4] 结果为 ell
    in 成员关系 - 如果给定字符串中存在指定的字符,则返回true 'H' in a 结果为 1
    not in 成员关系 - 如果给定字符串中不存在指定的字符,则返回true 'Y' not in a 结果为 1
    r/R 原始字符串 - 抑制转义字符的实际含义。原始字符串的语法与正常字符串的格式完全相同,除了原始字符串运算符在引号之前加上字母“r”。 “r”可以是小写(r)或大写(R),并且必须紧靠在第一个引号之前。 print(r' ') 将打印   ,或者 print(R' ') 将打印  ,要注意的是如果不加rR作为前缀,打印的结果就是一个换行。
    % 格式 - 执行字符串格式化 请参见本文第5节

    5.字符串格式化运算符

    Python最酷的功能之一是字符串格式运算符。 这个操作符对于字符串是独一无二的,弥补了C语言中 printf()系列函数。 以下是一个简单的例子 -

    #!/usr/bin/python3
     
    print ("My name is %s and weight is %d kg!" % ('Maxsu', 71))

    当执行上述代码时,会产生以下结果 -

    My name is Maxsu and weight is 71 kg!

    以下是可以与%符号一起使用的完整符号集列表 -

    编号格式化符号转换
    1 %c 字符
    2 %s 在格式化之前通过str()函数转换字符串
    3 %i 带符号的十进制整数
    4 %d 带符号的十进制整数
    5 %u 无符号十进制整数
    6 %o 八进制整数
    7 %x 十六进制整数(小写字母)
    8 %X 十六进制整数(大写字母)
    9 %e 指数符号(小写字母’e‘)
    10 %E 指数符号(大写字母’E
    11 %f 浮点实数
    12 %g %f%e
    13 %G %f%E

    其他支持的符号和功能如下表所列 -

    编号符号功能
    1 * 参数指定宽度或精度
    2 - 左对齐
    3 + 显示标志或符号
    4 <sp> 在正数之前留空格
    5 # 根据是否使用“x”或“X”,添加八进制前导零(‘0‘)或十六进制前导’0x‘或’0X‘。
    6 0 使用零作为左边垫符(而不是空格)
    7 % %%‘留下一个文字“%
    8 (var) 映射变量(字典参数)
    9 m.n. m是最小总宽度,n是小数点后显示的位数(如果应用)

    6.三重引号

    Python中的三重引号允许字符串跨越多行,包括逐字记录的新一行,TAB和任何其他特殊字符。

    三重引号的语法由三个连续的单引号或双引号组成。

    #!/usr/bin/python3
     
    para_str = """this is a long string that is made up of
    several lines and non-printable characters such as
    TAB ( 	 ) and they will show up that way when displayed.
    NEWLINEs within the string, whether explicitly given like
    this within the brackets [ 
     ], or just a NEWLINE within
    the variable assignment will also show up.
    """
    print (para_str)

    当执行上述代码时,会产生以下结果。注意每个单独的特殊字符如何被转换成其打印形式,它是直到最后一个NEWLINEs在“up”之间的字符串的末尾,并关闭三重引号。 另请注意,NEWLINEs可能会在一行或其转义码( )的末尾显式显示回车符 -

    this is a long string that is made up of
    several lines and non-printable characters such as
    TAB (    ) and they will show up that way when displayed.
    NEWLINEs within the string, whether explicitly given like
    this within the brackets [
     ], or just a NEWLINE within
    the variable assignment will also show up.

    原始字符串根本不将反斜杠视为特殊字符。放入原始字符串的每个字符都保持所写的方式 -

    #!/usr/bin/python3
     
    print ('C:\nowhere')

    当执行上述代码时,会产生以下结果 -

    C:
    owhere

    现在演示如何使用原始的字符串。将表达式修改为如下 -

    #!/usr/bin/python3
     
    print (r'C:\nowhere')

    当执行上述代码时,会产生以下结果 -

    C:\nowhere

    7.Unicode字符串

    在Python 3中,所有的字符串都用Unicode表示。在Python 2内部存储为8位ASCII,因此需要附加’u‘使其成为Unicode,而现在不再需要了。

  • 相关阅读:
    K
    A
    2017 Multi-University Training Contest
    第一章 概述
    校赛F 比比谁更快(线段树)
    POJ 3683 Priest John's Busiest Day
    POJ 2186 Popular Cows
    第十五周讨论
    线段树模板(单点更新,区间更新,RMQ)
    2-SAT问题(白书)
  • 原文地址:https://www.cnblogs.com/puzi0315/p/12584844.html
Copyright © 2011-2022 走看看