第四章-Python数据类型-第1节字符串

返回总目录:第四章-Python数据类型

  1. Python字符串(string)

Python 中的字符串必须由 双引号"" 或者 单引号' ' 包围,具体格式为:

    "字符串内容"
    '字符串内容'  

处理字符串中包含引号,我们有两种处理方案:

  • 对引号进行转义
    在引号前面添加反斜杠\就可以对引号进行转义,让 Python 把它作为普通文本对待,例如:

      str1 = 'I\'m a great coder!'
      str2 = "引文双引号是\",中文双引号是“"
      print(str1)
      print(str2)
    
  • 使用不同的引号包围字符串

      str1 = "I'm a great coder!"  #使用双引号包围含有单引号的字符串
      str2 = '引文双引号是",中文双引号是“'  #使用单引号包围含有双引号的字符串
      print(str1)
      print(str2)
    

运行结果:

    I'm a great coder!
    引文双引号是",中文双引号是“  

原始字符串:在普通字符串或者长字符串的开头加上r前缀,就变成了原始字符串

    str1 = r'I\'m a great coder!'
    print(str1)
    
    输出结果:
    I\'m a great coder!

使用字符串:

    #!/usr/bin/python3

    var1 = 'Hello World!'
    var2 = "Runoob"

    print ("var1[0]: ", var1[0])
    print ("var2[1:5]: ", var2[1:5])  

运行结果:

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

Python字符串运算符

操作符 描述 实例
+ 字符串连接 a + b 输出结果: HelloPython
* 重复输出字符串 a*2 输出结果:HelloHello
[ ] 通过索引获取字符串中字符 a[1] 输出结果 e
[ : ] 截取字符串中的一部分,遵循左闭右开原则,str[0:2] 是不包含第 3 个字符的。 a[1:4] 输出结果 ell
in 成员运算符 - 如果字符串中包含给定的字符返回 True 'H' in a 输出结果 True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True 'M' not in a 输出结果 True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。 print( r'\n' ) 或 print( R'\n' )
% 格式字符串 见下方详细描述

【实例】字符串运算符操作:

    #!/usr/bin/python3

    a = "Hello"
    b = "Python"

    print("a + b 输出结果:", a + b)
    print("a * 2 输出结果:", a * 2)
    print("a[1] 输出结果:", a[1])
    print("a[1:4] 输出结果:", a[1:4])

    if( "H" in a) :
        print("H 在变量 a 中")
    else :
        print("H 不在变量 a 中")

    if( "M" not in a) :
        print("M 不在变量 a 中")
    else :
        print("M 在变量 a 中")

    print (r'\n')
    print (R'\n')

输出结果:

    a + b 输出结果: HelloPython
    a * 2 输出结果: HelloHello
    a[1] 输出结果: e
    a[1:4] 输出结果: ell
    H 在变量 a 中
    M 不在变量 a 中
    \n
    \n

Python字符串格式化

    #!/usr/bin/python3
    print ("我叫 %s 今年 %d 岁!" % ('小明', 10))

python字符串格式化符号:

符 号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址

Python format 格式化函数

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。
基本语法是通过 {} 和 : 来代替以前的 % 。
format 函数可以接受不限个参数,位置可以不按顺序。

占位符格式化:

    >>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
    'hello world'

    >>> "{0} {1}".format("hello", "world")  # 设置指定位置
    'hello world'

    >>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
    'world hello world'  

指定参数格式化:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-

    print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))

    # 通过字典设置参数
    site = {"name": "菜鸟教程", "url": "www.runoob.com"}
    print("网站名:{name}, 地址 {url}".format(**site))

    # 通过列表索引设置参数
    my_list = ['菜鸟教程', 'www.runoob.com']
    print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的  

也可以向 str.format() 传入对象:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-

    class AssignValue(object):
        def __init__(self, value):
            self.value = value
    my_value = AssignValue(6)
    print('value 为: {0.value}'.format(my_value))  # "0" 是可选的

你可能感兴趣的:(第四章-Python数据类型-第1节字符串)