本系列为Python编程基础的学习笔记。
本文主要介绍Python的变量、简单数据类型、列表、if语句和字典的相关基础知识。

一、变量和简单数据类型

1.1 变量

命令规则
变量名只能包含字母、数字和下划线,只能以字母或下划线开头,不能以数字开头;
变量名不能包含空格,但可以使用下划线来分隔其中的单词;
变量名不能是Python的关键字和函数名,即一些用于特殊用途的单词;
变量名应既简短又具有描述性;
变量名中慎用小写小写字母l和大写字母O,可能会被误看成1和0。

错误反馈
程序无法成功运行时,Python解释器会提供一个traceback,即一条记录,其中指出了解释器陷入困境的信息:

变量名称错误的两种常见情况:没有赋值或拼写错误。

1.2 字符串

字符串:在Python中,用引号括起来的都是字符串,其中的引号可以是单引号也可以是双引号。

大小写调整
title()方法:以首字母大写的方式显示每个单词,例:

1
print(message.title())

upper()方法:以全部大写的方式显示字符串,例:

1
print(message.upper())

lower()方法:以全部小写的方式显示字符串,例:

1
print(message.lower())

拼接
使用加号(+)来合并字符串,例:

1
full_name = first_name + " " + last_name

添加空白
制表符(\t)、换行符(\n)、空格。

删除空白
lstrip()方法:剔除字符串开头空白,例:

1
print(message.lstrip())

rstrip()方法:剔除字符串末尾空白,例:

1
print(message.rstrip())

strip()方法:剔除字符串两端空白,例:

1
print(message.strip())

要永久删除字符串中的空白,必须将操作结果存回到变量,例:

1
message = message.strip()

1.3 数字

整数
加(+)减(-)乘(*)除(/),使用两个乘号表示乘方运算,例:

1
2
3**2 == 9
3**3 == 27

求模运算
求模运算符(%)将两个数相除并返回余数,例如:

1
2
num = 15 % 14
print(num)

运行结果为:1

判断奇偶数:若num % 2 == 0,则num为偶数,否则为奇数。

浮点数
浮点数:Python将带小数点的数都称为浮点数。

非字符与字符转换
str()函数:将非字符串值表示为字符串值,例:

1
2
3
num = 123
message = "The number is" + str(num)
print(message)

输出结果为:The number is 123

1.4 注释

Python的注释使用井号(#)标注。

二、列表

2.1 列表

列表:由一系列元素按特定顺序排列而成,用方括号([])表示,列表元素用逗号空格(, )分隔,例如:

1
example = ['abcd', 'efgh', 'ijkl']

创建空列表

1
example = []

访问元素
按位置或索引来访问列表中的元素,列表元素的索引从0开始而不是1,例:

1
print(example[0])

访问列表中的最后一个元素使用索引-1,例如:

1
print(example[-1])

访问列表中的倒数第二个元素使用索引-2,例如:

1
print(example[-2])

以此类推……

2.2 添加、修改、删除元素

添加
append()方法:添加到列表末尾,例如:

1
example.append('test')

insert()方法:添加到列表任意位置,需指定索引和值,后面的元素都右移一个位置,例如:

1
example.insert(0, 'hello')

修改
指定表名和索引,然后指定新值,例如:

1
example[0] = 'hello'

删除
del语句:利用索引,可删除任何位置的元素,例如:

1
del example[0]

pop()方法:利用索引,可删除任何位置的元素并使用其值,例如:

1
element = example.pop(0)

无索引默认删除末尾元素,例如:

1
element = example.pop()

remove()方法:利用值,可删除第一个指定的值(多次出现需要循环),例如:

1
example.remove('test')

注意:将元素删除之后,后面的元素将会左移

2.3 组织列表

永久排序
sort()方法:永久性对列表元素进行排序,例如:

1
example.sort()

按反顺序排序传递参数reverse=True,例如:

1
example.sort(reverse=True)

临时排序
sorted()函数:临时性对列表元素进行排序,例如:

1
sorted(example)

倒打印
reverse()方法:永久性反转列表元素的排列顺序(与排序有差别),例如:

1
example.reverse()

求长度
len()函数:可求取列表长度(包含元素个数),例如:

1
length = len(example)

2.4 索引超出范围

2.5 遍历整个列表

利用for循环遍历列表,格式:

for 临时变量名 in 列表名:

例如:

1
2
3
examples = ['test1', 'test2']
for example in examples:
print(example)

一般用单数式表示变量名,复数式表示列表名。
利用缩进来实现循环部分的多行代码,在for循环部分中想包含多少行代码都可以。

2.6 常见缩进错误反馈

忘记缩进:

不必要的缩进:

遗漏冒号:(特别注意这里容易遗漏)

2.7 数字列表

range()函数
从指定的第一个数开始生成一系列数字,到达指定的第二个数后停止,结果不包含指定的第二个数,格式:

for 临时变量名 in range(指定数一

步长未指定时逐一生成数字,例如:

1
2
for num in range(1, 4):
print(num)

输出结果为:
1
2
3

步长指定时按步生成数字,例如:

1
2
for num in range(1, 4, 2):
print(num)

输出结果为:
1
3

list()函数
将参数给的一系列值转换为数字列表,格式:

列表名 = list(参数)

例如,当以range()函数生成的一系列值为其参数时:

1
2
nums = list(range(1, 4))
print(nums)

输出结果为:[1, 2, 3]

找出数字列表中最大值、最小值、总和
使用max()函数、min()函数、sum()函数。例如:

1
2
3
4
nums = list(range(1, 4))
print(max(nums))
print(min(nums))
print(sum(nums))

列表解析
将for循环和创建新元素的代码合并成一行,并自动附加新元素,格式:

列表名 = [表达式 给表达式提供值的for循环]

例如:

1
2
nums = [num-1 for num in range(1, 4)]
print(nums)

输出结果为:[0, 1, 2]

注意:这里的for循环没有冒号。

2.8 切片

切片:通过指定要使用的第一个元素的索引和最后一个元素的索引加1来处理列表中的部分元素。

特殊索引
未指定起始索引,从列表头元素开始;
未指定终止索引,到列表尾元素终止;
二者均没有指定,包含整个列表元素。
例如:

1
2
3
4
5
examples = ['test1', 'test2', 'test3']
print(examples[0:3])
print(examples[:1])
print(examples[1:])
print(examples[:])

输出结果为:
[‘test1’, ‘test2’, ‘test3’]
[‘test1’]
[‘test2’, ‘test3’]
[‘test1’, ‘test2’, ‘test3’]

拓展:可以使用负数索引按同样方式获取列表末尾的切片。

复制列表
同时省略起始索引和终止索引,即[:],例如:

1
2
examples = ['test1', 'test2', 'test3']
copy_examples = examples[:]

区分:不能直接使用copy_examples = examples,该种写法为将变量copy_examples关联到包含在examples中的列表,即:二者都指向同一个列表。

2.9 元组

元组:不可变的列表被称为元组,即其值不可被修改。与列表类似,只不过元组使用的是圆括号来标识,例如:

1
examples = ('test1', 'test2', 'test3')

当元组的元素被尝试修改:examples[0] = ‘test4’,将会报错:

当给存储元组的变量重新赋值:examples = (‘test4’, ‘test5’, ‘test6’),将不会报错。

2.10 编码规范

PEP 8(Python改进提案 8)建议
每级缩进都使用四个空格(使用制表符键实现,但插入的是空格而不是制表符,可在编辑器中设置);
每行代码不超过80个字符,每行注释不超过72个字符;
要将程序的不同部分分开,可使用空行。

三、if语句

3.1 条件测试

条件测试:每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试。
当测试值为True时,执行代码;当测试值为False时,忽略代码。

3.2 相等和不相等

判断“相等”使用 == 而并非 = ;判断“不相等”使用 != 。
Python在检查是否相等时区分大小写,两个大小写不同的值会被视为不相等。若大小写无关紧要,可以利用小写转换来进行比较,例如:

1
2
3
example = 'TEST'
if example.lower() == 'test':
print('True')

输出结果为:True

3.3 其它关系

大于、小于、大于等于、小于等于:>、<、>=、<=。

3.4 检查多个条件

and关键字:所有条件同时满足时表达式值为Ture,否则为False。
or关键字:所有条件同时不满足时表达值为False,否则为Ture。

3.5 检查特定值

判断特定值是否已包含在列表中,使用关键字in;判断特定值是否未包含在列表中,使用关键字not in。例如:

1
2
3
4
5
examples = ['TEST', 'test']
if 'test' in examples:
print('True')
if 'Test' not in examples:
print('True')

输出结果均为:True

3.6 布尔表达式

与条件表达式一样,其结果要么为Ture,要么为False,例如:

1
2
example1 = True
example2 = False

3.7 if语句形式

if语句

1
2
3
examples = ['TEST', 'test']
if 'test' inexamples:
print('True')

if-else语句

1
2
3
4
5
examples = ['TEST', 'test']
if 'test' in examples:
print('True')
else:
print('False')

if-elif-else语句

1
2
3
4
5
6
7
example = 'TEST'
if example == 'test':
print('True')
elif example == 'Test':
print('True')
else:
print('False')

注意:这里的elif根据实际情况可使用多次,最后的else代码块可以省略。

3.8 使用if语句处理列表

确定列表不为空
将列表名用在if语句中的条件表达式时,若该列表包含至少一个元素则返回True,若该列表为空时返回False。

3.9 语句规范

PEP 8建议:在==、>=、<=等比较运算符的左右两边各加一个空格,提高代码阅读性。

四、字典

4.1 定义字典

字典:一系列放在花括号{}中的键-值对。

键-值对是两个相关联的值,键与值之间用冒号(:)分隔,键-值对之间用逗号(,)分隔。通过键可以访问到与之相关联的值。任何Python对象都可以用作字典中的值。例如:

1
example = {'ID': 1, 'Name': 'test'}

访问字典中的值
使用键来访问对应值,例如:

1
2
example = {'ID': 1, 'Name': 'test'}
print(example['Name'])

添加键-值对
依次指定字典名、用方括号括起来的键和相关联信息,例如:

1
2
example = {'ID': 1, 'Name': 'test'}
example['Sex'] = 'man'

注意:字典是一种动态结构,可随时在其中添加键-值对。

定义空字典

1
example = {}

修改键-值对
依次指定字典名、用方括号括起来的键和相关联新值,例如:

1
2
example = {'ID': 1, 'Name': 'test'}
example['Name'] = 'TEST'

删除键-值对
使用del语句,并依次指定字典名、用方括号括起来的键,例如:

1
2
example = {'ID': 1, 'Name': 'test'}
del example['Name']

注意:此种方法键-值对将被永远删除。

多行字典
示例:

1
2
3
4
5
examples = {
'example1': 1,
'example2': 2,
'example3': 3,
}

4.2 遍历字典

遍历所有键值对
使用for循环+items()方法,例如:

1
2
3
for key, value in examples.items():
print(key)
print(value)

其中,变量key用于存储键,变量value用于存储值,二者变量名可随意。

注意:遍历返回的顺序和存储的顺序可能不同,Python并不关心字典的存储顺序,只追踪键-值之间的关联关系。

遍历所有键
使用for循环+keys()方法,例如:

1
2
for key in examples.keys():
print(key)

其中,变量key用于存储键。当.keys()省略时,也将默认得到所有键而没有值。

注意:keys()方法返回的其实是一个包含字典中所有键的列表,因此可以实现按顺序遍历字典中的所有键,例如:

1
2
for key in sorted(examples.keys()):
print(key)

遍历所有值
使用for循环+values()方法,例如:

1
2
for value in examples.values():
print(value)

其中,变量value用于存储值。

注意:values()方法返回的其实是一个包含字典中所有值的列表,并没有考虑是否重复。

为了剔除返回列表中的重复项,可以使用集合(set)来表示:集合类似于列表,但是不存在重复的元素。例如:

1
2
for value in set(examples.values()):
print(value)

4.3 嵌套

嵌套:将一系列的字典存储在列表中,或将一系列的列表作为值存储在字典中,称为嵌套。

在列表中存储字典
字典作为列表的元素存诸到列表当中,例如:

1
2
3
4
example1 = {'ID':1}
example2 = {'ID':2}
example3 = {'ID':3}
examples = [example1, example2, example3]

在字典中存储列表
列表作为字典的值存储到字典当中,例如:

1
2
3
4
example = {
'ID': 1,
'TEST': ['test1', 'test2', 'test3'],
}

每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。

在字典中存储字典
字典作为字典的值存储到字典当中,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
examples = {
'example1': {
'ID': 1,
'TEST': ['test1', 'test2', 'test3'],
},
'example2': {
'ID': 2,
'TEST': ['test4', 'test5', 'test6'],
},
'example3': {
'ID': 3,
'TEST': ['test7', 'test8', 'test9'],
},
}

评论区 (输入正确的邮箱可以收到回复哦!网址可选)