本文来自异想之旅公开发布的Python教程,原文地址:https://www.yuque.com/yxzl/python
除了数字之外,字符便是计算机变成中最重要的概念了。你现在正在阅读这篇文章正是某种编程语言(大概是 JavaScript)处理字符信息的杰作。
本节将讲述字符串的四个知识点:转义字符、切片、操作和自身方法,随后补充多行字符串的书写规则。
如何在电脑上打出换行符?你可能会说,简单,按一下 Enter 就是了。但是这样的操作输入的字符并没有显示出来,计算机显示时直接进行了换行这一动作……想要将回车等特殊字符像英文字母一样打印出来,就需要转义字符。
名词解释:转义字符,字母前加
\
来表示常见的那些不能显示的字符,如\t
\n
等,就称为转义字符,因为后面的字符都不是它本来的字符意思了。
转义字符 | 描述 | 样例 |
---|---|---|
\\ | 反斜杠符号 | print('\\\\') 输出 \\ |
\’ | 单引号(仅在使用单引号包裹字符串时必须) | print('\\'') 输出 ' |
\" | 双引号(仅在使用双引号包裹字符串时必须) | print("\\"") 输出 " |
\b | 退格(Backspace) | print('Hel\\blo') 输出 Helo |
\n | 换行 | print('a\\nb') 输出 a(换行到下一行)b |
\t | 横向制表符(具体用途未来会有) | print('Hello\\tWorld!') 输出 Hello World! |
\uxxxx | 十六进制 Unicode 编码 | print('\\u6211\\u559c\\u6b22\\u4f60') 输出 我喜欢你 |
\other | 其它的非转义字符以普通格式输出 | print('\\a') 输出 a |
转义字符仅在输出时有效。目前我们学到的输出方式只有 print
。如果你在选择开发工具时选择了 Python 内置的 IDEA,那么部分字符(例如 \b
)将无法生效,请自行查询如何使用终端(cmd)运行 Python 解决此问题。
唔……忽然想放到讲完列表再讲。原因嘛,列表和字符串的切片原理是一样的,而我有几张现成的讲列表切片的图,不想再找一次了哈哈哈哈。具体请见 1.7 章节中的介绍。
此处的运算操作并非严格意义上的运算,更合适的名称或许是“使用运算符的字符串操作”。
对两个字符串做加法,本质上是将他们连接起来。
a = 'Hello'
b = 'World'
print(a + b)
# 输出:HelloWorld
字符串的乘法是一个字符串 str 乘以一个整数 int,表示将字符串重复多少次。
a = 'QDZX'
print(a * 3)
# 输出:QDZXQDZXQDZX
这部分直接看样例代码。
a = "qdZX HCCE"
print('---第一组---')
print(a.upper()) # 将所有字母转换为大写,输出:QDZX HCCE
print(a.lower()) # 将所有字母转换为小写,输出:qdzx hcce
print(a.capitalize()) # 将第一个字母转换为大写,其他字母转换为小写,输出:Qdzx hcce
print(a.title()) # 将每个单词的第一个字母转换为大写,其他字母转换为小写,输出:Qdzx Hcce
print('---第二组---')
# 往下两行请高手掌握
print(a.swapcase()) # 将大写字母转换为小写,小写字母转换为大写,输出:QDzx hcce
print(a.isalpha()) # 判断是否全部为字母或Unicode字符(可以简单理解为不包含数字和英文模式的字符),输出:False
print('---第三组---')
b = 'QDZX'
print(b.isupper()) # 判断是否全部为大写字母,输出:True
print(b.islower()) # 判断是否全部为小写字母,输出:False
print(b.istitle()) # 判断是否全部为标题,输出:False
print('---第四组---')
c = '12345.6789'
print(c.isdigit()) # 判断是否全部为数字,输出:False
print(' '.isspace()) # 判断是否全部为空白字符,输出:True
print('---第五组---')
print(''.isupper()) # 对于所有 .is 开头的方法函数,空串全部输出False
print('---第六组---')
d = 'ABCDDDCBA'
print(len(d)) # 求字符串的长度,输出:9
print(d.count('D')) # 求字符串中D出现的次数,输出:3
print(d.find('D')) # 求字符串中D首次出现的位置,输出:3(出现在字符串第4个字符,但是编程语言从0开始计数)
print(d.startswith('ABC')) # 判断字符串是否以指定的字符串开头,输出:True
print(d.endswith('DCBA')) # 判断字符串是否以指定的字符串结尾,输出:True
以上形如a.xxx()
的语句中,xxx
为a
对象的方法。
名词解释:对象,包括属性(Properties)和方法(Methods),属性就是需要记忆的信息,方法就是对象能够提供的服务。此处我们可以先理解为特殊的变量。
方法,特殊的函数,与普通函数不同的地方是它属于一个对象,调用它完成的操作通常情况下是围绕这个对象本身的值展开的。例如a.upper()
就是操作字符串a
中的字符。
这里先介绍一个大概,若有不理解不必着急,关于类和对象的更多知识将在教程 第二部分 提及。
我们已知在 Python 中可以使用 '\n'
换行,但是这样的换行并不明了,且对于长字符串来说过于麻烦,有没有更简单的方式?
三引号字符串。
a = '''Hello
World'''
print(a)
print('=====')
b = """大
家好
"""
print(b)
输出:
Hello
World
=====
大
家好
又是一个新手常问的问题:更多呢?四个,五个引号可不可以?答案是不可以,会报错。