Python基础(9)–字符串的概述、创建与转义字符

◎知识点

  1. Python字符串的概述

  2. 字符串的创建

  3. 转义字符

  4. 原始字符串

  5. 跨越多行的字符串


◎脚本练习

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
 @FileName:    string_def.py
 @Function:    string definition
 @Author:      Zhihe An
 @Site:        https://chegva.com
 @Time:        2021/6/23
"""

"""一、字符串的概述"""

"""
1、什么是字符串?
    在程序中,文本内容用字符串来表示
    字符串由一系列有序的字符组成
    例如:'HelloWorld','PythonLanguage'
    字符串与列表和元组一样,都属于序列类型
    可以将字符串看作是字符的列表,列表的很多操作对于字符串也是适用的
    没有单独的字符类型,字符就是只包含一个元素的字符串,例如:'a'、'b'、'c'
"""


"""二、字符串的创建"""

"""
创建字符串的两种方式:
1、使用引号
    创建字符串时既可以使用单引号,也可以使用双引号,通常使用单引号
    当把字符串赋值给变量时,变量名不要取名为str,因为str是字符串对应的类名
"""

"""
>>> s = 'abcd'
>>> s
'abcd'

>>> s = "abcd"
>>> s
'abcd'

# 空字符串
>>> ''
''
>>> ""
''
"""

"""
    可以在单引号中使用双引号,也可以在双引号中使用单引号
    
>>> 'abc"def"'
'abc"def"'
>>> "abc'def'"
"abc'def'"
"""

"""
    不能在单引号中使用单引号,也不能在双引号中使用双引号

# 本来想要打印字符串abc'def',结果前两个单引号进行了匹配
>>> 'abc'def''
  File "<stdin>", line 1
    'abc'def''
         ^
SyntaxError: invalid syntax

# 本来想要打印字符串abc"def",结果前两个双引号进行了匹配
>>> "abc"def""
  File "<stdin>", line 1
    "abc"def""
         ^
SyntaxError: invalid syntax
"""

"""
2、调用内置函数str(类str的构造方法)

>>> str('abcd')
'abcd'
>>> str("abcd")
'abcd'

>>> str(123)
'123'
>>> str(12.3)
'12.3'

# 空字符串
>>> str()
''
"""


"""三、转义字符"""

"""
1、使用转义字符表示无法直接表示的特殊字符
    当字符串中包含换行、回车、水平制表符或退格等无法直接表示的特殊字符时,该如何表示呢?
    (1) 换行:newline,光标移动到下一行的开头
    (2) 回车:return,光标移动到本行的开头
    (3) 水平制表符:键盘上的tab键,光标移动到下一组4个空格的开始处
    (4) 退格:键盘backspace键,回退一个字符
    
    可以使用如下转义字符:
    换行:\n
    回车:\r
    水平制表符:\t
    退格:\b
"""

print('abc\ndef')
print('abc\rdef')   # def
print('123456\t123\t45')    # 123456   123    45
print('abc\bdef')   # abdef

"""
2、使用转义字符表示在字符串中有特殊用途的字符
    某些字符在字符串中有特殊用途,比如:反斜杠用于转义,单引号和双引号用于字符串的边界
    因此,不能在字符串中直接包含这些有特殊用途的字符
"""

# 本来想要打印字符串'abc\rdef',结果反斜杠用于转义了
print('abc\rdef')   # def
# 本来想要打印字符串'abc'def'',结果前两个单引号进行了匹配
# print('abc'def')
# 本来想要打印字符串'abc'def'',结果前两个双引号进行了匹配
# print("abc"def"")

"""
    当字符串中包含反斜杠、单引号和双引号等有特殊用途的字符时,必须使用反斜杠对这些字符进行转义
    反斜杠:\\
    单引号:\'
    双引号:\"
"""

print('abc\\rdef')  # abc\rdef
print('abc\'def\'') # abc'def'
print("abc\"def\"") # abc"def"


"""四、原始字始符"""

"""
1、如果不想让字符串中的转义字符生效,可以在字符串的前面添加r或R,从而将字符串声明为原始字符串
"""

print(r'\tC:\\Program Files')   # \tC:\\Program Files
print(R'\tC:\\Program Files')   # \tC:\\Program Files

"""
2、原始字符串的最后一个字符不能是反斜杠(最后两个字符都是反斜杠除外)
"""

# print(r'HelloWorld\') # SyntaxError: EOL while scanning string literal
print(r'HelloWorld\\')  # HelloWorld\\

# 解释器不会把r'What\'看做是一个原始字符串,因为原始字符串不能以反斜杠结尾
print(r'What\'s your name') # What\'s your name
# 解释器不会把r'What\\'看做是一个原始字符串,因为原始字符串可以以两个反斜杠结尾
# print(r'What\\'s your name') # What\'s your name


"""五、跨越多行的字符串"""

"""
如果想让字符串跨越多行,常见的方式有两种:
1、使用三个引号
"""

print('''我是一个
跨越多行的
字符串''')

print("""我是一个
跨越多行的
字符串""")

# 在三个引号中既可以包含单引号,也可以包含双引号
print('''我是一个
'跨越多行'的
"字符"串''')

print("""我是一个
'跨越多行'的
"字符"串""")

# 可以在三个单引号中嵌套三个双引号,也可以在三个双引号中嵌套三个单引号
print('''我是一个
"""跨越多行"""的
字符串''')

print("""我是一个
'''跨越多行'''的
字符串""")

"""
2、在每行的结尾添加\
"""

print('我是一个\
跨越多行的\
字符串')

◎脚本地址:https://github.com/anzhihe/learning/blob/master/python/practise/learn-python/python_basic/string_def.py

anzhihe 安志合个人博客,版权所有 丨 如未注明,均为原创 丨 转载请注明转自:https://chegva.com/4590.html | ☆★★每天进步一点点,加油!★★☆ | 

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注