1.1 格式框架
1.1.1 缩进
Python 语言采用严格的 “缩进” 来表明程序的格式框架。缩进用来表示代码之间的包含和层次关系,它是 Python 语言中表明程序框架的唯一手段。PEP 8 指南建议使用四个空格表示一个缩进,这既提高了可读性,又留下了足够的多级缩进空间。
在字处理文档中,通常被广泛使用的是制表符,而不是使用空格来完成缩进。对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让 Python 解释器感到迷惑。好在每款编辑器都提供了一种功能,可以将输入的制表符转换为指定数量的空格。因此,在编写代码时绝对应该使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。
1.1.2 注释
注释是代码中的辅助性文字,用以在程序中使用自然语言进行解释说明。Python 语言采用 #
表示一行注释的开始,多行注释需要在每行开始都使用 #
。PEP 8 建议注释的行长不应超过 72 字符。
严格地讲,Python 并未提供多行注释。但可以使用成对的三个单引号 '''
或双引号 """
来实现多行注释的功能。事实上, '''
或 """
在 Python 中用来完成文档注释。
1.1.3 续行符
Python 程序是逐行编写的,每行代码的长度并无限制。但单行代码太长会不利于阅读,PEP 8 建议每行不超过 80 个字符。
在 Python 中可以使用续行符将单行代码分割成多行代码,Python 中的续行符为 \
,续行符后应直接换行。列表、元组、字典中的元素之间不使用续行符也可以直接换行。
在大多数的开发软件中,都可以设置一个视觉标志,通常是一条垂直参考线,让你知道不能越过的界限在什么地方。
1.1.4 空行
要将程序的不同部分分开,可使用空行。空行与代码缩进不同,它并不是 Python 语法的一部分。即使书写时不插入空行,也不会出现语法错误。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。因此,空行也是程序代码的重要部分。
通常,函数之间或类中的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
1.2 基本语法元素
1.2.1 变量与常量
变量是保存和表示数据值的一种语法元素。变量的值可以改变,能够通过赋值方式被修改。变量的标识符通常全部使用小写字母,单词之间使用下划线连接。
常量是一种特殊的变量,其值在程序的整个生命周期内保持不变。通常使用全部大写变量名的方式来指出应将该变量视为常量。相比于直接使用字面值而言,为常量指定一个有意义的名称,可以更清晰地表达出它的用途。
1.2.2 标识符
Python 语言允许使用大写字母、小写字母、数字、下划线和汉字等字符及其组合给变量、函数、类等命名,即标识符。标识符的长度没有限制,首字符不能是数字,中间不能出现空格。
注意:Python 对大小写敏感,例如 message 和 Message 是两个不同的标识符。
1.2.3 保留字
保留字,也称为关键字,指被编程语言内部定义并保留使用的标识符。程序员编写程序不能定义与保留字相同的标识符。每种程序设计语言都有一套保留字,保留字一般用来构成程序的整体框架、表达关键值和具有结构性的复杂语义等。
1.3 基本语句元素
1.3.1 表达式
产生或计算新数据值的代码片段称为表达式。表达式类似数学中的计算公式,运算后产生运算结果,运算结果的类型由操作符或运算符决定。表达式一般由数据和操作符等构成,是构成 Python 语句的重要部分。
1.3.2 赋值语句
Python 语言中,=
表示 “赋值”,即将等号右侧的值计算后将结果值赋给左侧变量,包含等号 =
的语句称为 “赋值语句”。格式为:
<变量> = <表达式>
还可以使用同步赋值语句同时给多个变量赋值,格式为:
<变量 1>, …, <变量 N> = <表达式 1>, …, <表达式 N>
1.3.3 分支与循环
分支语句的作用是根据判断条件选择程序执行路径,包括单分支、二分支和多分支。
循环语句与分支语句控制程序执行类似,它的作用是根据判断条件确定一段程序是否再次执行一次或者多次。循环语句包括遍历循环和条件循环。
1.4 数据类型概述
1.4.1 数字类型
Python 中的数字类型有整数、浮点数、复数,分别和数学中的整数、小数、复数相对应。不同的数字类型可以直接计算。可以把 IDLE 当作一个计算器使用:
>>> 1 + 2
3
>>> 3 - 2
1
>>> 2 * 3
6
>>> 3 / 2
1.5
>>> 3 ** 2
9
>>> 3 ** 0.5
1.7320508075688772
>>> 2 + 3*4
14
>>> (2 + 3) * 4
20
1.4.2 字符串
字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。单行字符串由一对单引号 '
或双引号 "
作为边界来表示,多行字符串由一对三单引号 '''
或三双引号 """
作为边界来表示。
在 Python 中,单引号和双引号都用来表示字符串。这种设计的好处是可以在字符串中很轻松地包含引号和撇号:
>>> print('I tlod my friend, "Python is interesting."')
I tlod my friend, "Python is interesting."
>>> print("She's my best friend.")
She's my best friend.
还有一种特殊的字符串是转义字符。Python 语言的转义符为 \
,其与后面相邻的一个字符共同组成了新的含义。如:\n
表示换行、\\
表示反斜杠、\'
表示单引号、\"
表示双引号、\t
表示制表符。
字符串是一个字符序列。字符串最左端位置标记为 0,向右依次增加;最右端位置标记为 -1,向左依次递减。对字符串中某个字符的检索被称为索引。索引的使用方式为:
<字符串或字符串变量>[序号]
>>> 'hello'[0]
'h'
>>> 'hello'[3]
'l'
>>> 'hello'[-2]
'l'
Python 中的字符串以 Unicode 编码存储,字符串的英文字符和中文字符都算作 1 个字符。
对字符串中某个子串或区间的检索被称为切片。切片的使用方式为:
<字符串或字符串变量>[N: M]
切片将会返回字符串的第 N 个到第 M 个字符,不包含末尾的 M 个字符。
>>> 'hello'[1: 3]
'el'
>>> 'hello'[1:] # 检索区间到最后一个字符结束
'ello'
>>> 'hello'[: 3] # 检索区间从 0 开始
'hel'
>>> 'hello'[:] # 返回字符串副本
'hello'
此外,还可以在切片时指定步长:
<字符串或字符串变量>[N: M: K]
>>> 'hello'[::2]
'hlo'
>>> 'hello'[::-1]
'olleh'
>>> 'hello'[1: 3: 2]
'e'
1.4.3 列表与元组
列表、元组以及字符串在 Python 中同属于序列类型。序列类型是一维元素向量,元素之间存在先后关系,通过序号访问。因此,上述对字符串的索引、切片操作同样适用于列表及元组类型。
字符串类型可以看成是字符的有序组合。列表则是一个可以使用多种类型元素的序列类型,由方括号[]
表示,列表中的元素可以进行修改。
>>> pets = ['dog', 'cat', 'rabbit'] # 创建列表
>>> pets[1] = 'parrot' # 修改列表
>>> pets
['dog', 'parrot', 'rabbit']
元组可以被视为一种特殊的列表,它使用圆括号来表示,元组中的元素不能被更改。
>>> pets = ('dog', 'cat', 'rabbit')
>>> pets[0] = 'goldfish'
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
pets[0] = 'goldfish'
TypeError: 'tuple' object does not support item assignment
对于序列类型,有一些通用的操作:
x in s:如果 x 是 s 的元素,返回 True,否则返回 False。
x not in s:如果 x 不是 s 的元素,返回 True,否则返回 False。
s + t:连接 s 和 t。
s * n 或 n * s:将序列 s 复制 n 次。
len(s):返回序列 s 的元素个数(长度)。
min(s):返回序列 s 中的最小元素。
max(s):返回序列 s 中的最大元素。
sorted(s):对 s 的元素进行顺序排序,并以列表的形式返回结果。如果需要逆序排序,传递参数 reverse=True 即可。
s.index(x):返回序列 s 中第一次出现元素 x 的位置。
s.count(x):返回序列 s 中出现 x 的总次数。
1.4.4 集合与字典
Python 语言中的集合类型与数学中的集合概念一致,即包含 0 个或多个数据项的无序组合,用大括号 {}
表示。因为集合是无序的,所以没有索引和位置的概念。集合中的元素可以进行增删。
集合中的元素类型只能是固定数据类型,例如:整数、浮点数、字符串、元组等,而列表、字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。
>>> S = {
2.71, 'dog', (1, 2)}
>>> S
{
2.71, (1, 2), 'dog'}
从上面的程序可以看到,集合的打印效果与定义顺序并不一致,因为集合元素是无序的。
字典是一种映射类型,使用 “键值对” 组织数据。这种组织数据的方式广泛应用在 Web 系统中。键值对的基本思想是将 “值” 信息关联一个 “键” 信息,进而通过键信息查找对应的值信息,这个过程叫映射。Python 语言中通过字典类型实现映射。
Python 语言中的字典使用大括号 {}
建立,每个元素是一个键值对,使用方式如下:
{
<键 1>: <值 1>, <键 2>: <值 2>, …, <键 n>: <值 n>}
其中,键和值通过冒号连接,不同的键值对通过逗号隔开。从 Python 3.7 开始,字典中元素的排列与定义时相同。如果将字典打印出来或遍历其元素,将发现元素的排列顺序与添加顺序相同。
字典有时会存储众多的数据,因此可以使用多行来定义一个字典。例如下面的字典存储了每个人最喜欢的编程语言:
favourite_languages = {
'jen': 'python',
'sarch': 'c',
'edward': 'ruby',
'phil': 'python',
}
如上代码所示,最后一个键值对的后面也添加了逗号,这样做的好处是可以为添加下一行键值对时做好准备。
列表类型采用元素的位置进行索引。在字典的键值对元素中,键是值的索引,因此,可以直接利用键值对关系索引元素。字典中键值对的索引模式如下,采用中括号格式:
<值> = <字典变量>[<键>]
>>> d = {
"01": "小明", "02": "小红", "03": "小白"}
>>> d["02"]
小红
利用索引和赋值操作配合,可以对字典中每个元素进行修改:
>>> d = {
"01": "小明", "02": "小红", "03": "小白"}
>>> d["02"] = "阿红"
>>> d
{
'01': '小明', '02': '阿红', '03': '小白'}
通过索引和赋值配合,还可以向字典中增加元素:
>>> d = {
}
>>> d["04"] = "小新"
>>> d
{
'04': '小新'}
对于字典中不再需要的信息,可以使用 del 语句将相应的键值对彻底删除。使用 del 语句时,必须指定字典名和要删除的键。
>>> d = {
"01": "小明", "02": "小红", "03": "小白"}
>>> del d["03"]
>>> d
{
'01': '小明', '02': '小红'}
1.5 基本输入输出函数
1.5.1 input() 函数
input() 函数用以从控制台获得用户的一行输入,无论用户输入什么内容,input() 函数都以字符串类型返回。input() 函数可以包含一些提示性文字,用来提示用户。格式为:
<变量> = input(<提示性文字>)
name = input('能告诉我你的名字吗:')
print(f'你好,{name}。')
------------------------------------------------------------------------
能告诉我你的名字吗:John Lennon
你好,John Lennon。
有时候,提示信息可能有多行。可以先把提示信息赋值给一个变量,再把这个变量传递给函数 input():
prompt = '可以告诉我你的名字吗?'
prompt += '\n我将告诉你一个秘密。'
name = input(prompt)
print(f'{name}, 你将永远被人铭记。')
------------------------------------------------------------------------
可以告诉我你的名字吗?
我将告诉你一个秘密。John Lennon
John Lennon, 你将永远被人铭记。
也可以使用多行字符串来表示提示信息:
prompt = '''可以告诉我你的名字吗?
我将告诉你一个秘密。'''
1.5.2 eval() 函数
eval() 函数是 Python 语言中一个十分重要的函数,它能够以 Python 表达式的方式解析并执行字符串,将返回结果输出。
eval() 函数经常和 input() 函数一起使用,用来获取用户输入的数字,使用方式为:
<变量> = eval(input(<提示性文字>))
1.5.3 print() 函数
print() 函数用于输出运算结果,根据输出内容的不同,有三种用法。
第一种,仅用于输出字符串,使用方式为:
print(<待输出字符串>)
print('世界和平')
------------------------------------------------------------------------
世界和平
如果 print() 函数中的字符串很长,可以在合适的位置分行。只需要在每行末尾都加上引号,同时对于除第一行以外的其他各行,都在行首加上引号并缩进。
print("话语不断涌出心头,像无止尽的雨浸入纸杯。"
"雨水倾泻,纷纷划过天际。")
------------------------------------------------------------------------
话语不断涌出心头,像无止尽的雨浸入纸杯。雨水倾泻,纷纷划过天际。
第二种,仅用于输出一个或多个变量,使用方式为:
print(<变量 1>, <变量 2>, …, <变量 n>)
value = 123.456
print(value, value, value)
------------------------------------------------------------------------
123.456 123.456 123.456
第三种,用于混合输出字符串与变量值,使用方式为:
print(<输出字符串模板>.format(<变量 1>, <变量 2>, …, <变量 n>))
a, b = 123.456, 1024
print("数字 {} 和数字 {} 的乘积是 {}".format(a, b, a*b))
------------------------------------------------------------------------
数字 123.456 和数字 1024 的乘积是 126417.944
print() 函数输出完文本后会默认换行,如果不希望换行,或者希望在文本后增加其他内容,可以对 print() 函数的 end 参数进行赋值。格式为:
print(<待输出内容>, end="<增加的输出结尾>")
>>> a = 24
>>> print(a, end=".")
24.
>>> print(a, end="%")
24%
end 的值为空字符串 ''
时,表示将前后输出的字符串在同一行连续显示。
for i in range(1, 10):
print(i, end='')
------------------------------------------------------------------------
123456789
转载:https://blog.csdn.net/weixin_39510694/article/details/115584863