Python编程 基础篇(一)
- 一、变量和简单数据类型
- 1.1 变量
- 1.2 字符串
- 1.3 数字
- 1.4 注释
- 二、列表
- 2.1 列表
- 2.2 添加、修改、删除元素
- 2.3 组织列表
- 2.4 索引超出范围
- 2.5 遍历整个列表
- 2.6 常见缩进错误反馈
- 2.7 数字列表
- 2.8 切片
- 2.9 元组
- 2.10 编码规范
- 三、if语句
- 3.1 条件测试
- 3.2 相等和不相等
- 3.3 其它关系
- 3.4 检查多个条件
- 3.5 检查特定值
- 3.6 布尔表达式
- 3.7 if语句形式
- 3.8 使用if语句处理列表
- 3.9 语句规范
- 四、字典
- 4.1 定义字典
- 4.2 遍历字典
- 4.3 嵌套
本系列为Python编程基础的学习笔记。
本文主要介绍Python的变量、简单数据类型、列表、if语句和字典的相关基础知识。
一、变量和简单数据类型
1.1 变量
命令规则
变量名只能包含字母、数字和下划线,只能以字母或下划线开头,不能以数字开头;
变量名不能包含空格,但可以使用下划线来分隔其中的单词;
变量名不能是Python的关键字和函数名,即一些用于特殊用途的单词;
变量名应既简短又具有描述性;
变量名中慎用小写小写字母l和大写字母O,可能会被误看成1和0。
错误反馈
程序无法成功运行时,Python解释器会提供一个traceback,即一条记录,其中指出了解释器陷入困境的信息:
变量名称错误的两种常见情况:没有赋值或拼写错误。
1.2 字符串
字符串:在Python中,用引号括起来的都是字符串,其中的引号可以是单引号也可以是双引号。
大小写调整
title()方法:以首字母大写的方式显示每个单词,例:
print(message.title())
upper()方法:以全部大写的方式显示字符串,例:
print(message.upper())
lower()方法:以全部小写的方式显示字符串,例:
print(message.lower())
拼接
使用加号(+)来合并字符串,例:
full_name = first_name + " " + last_name
添加空白
制表符(\t)、换行符(\n)、空格。
删除空白
lstrip()方法:剔除字符串开头空白,例:
print(message.lstrip())
rstrip()方法:剔除字符串末尾空白,例:
print(message.rstrip())
strip()方法:剔除字符串两端空白,例:
print(message.strip())
要永久删除字符串中的空白,必须将操作结果存回到变量,例:
message = message.strip()
1.3 数字
整数
加(+)减(-)乘(*)除(/),使用两个乘号表示乘方运算,例:
3**2 == 9
3**3 == 27
浮点数
浮点数:Python将带小数点的数都称为浮点数。
非字符与字符转换
str()函数:将非字符串值表示为字符串值,例:
num = 123
message = "The number is" + str(num)
print(message)
输出结果为:The number is 123
1.4 注释
Python的注释使用井号(#)标注。
二、列表
2.1 列表
列表:由一系列元素按特定顺序排列而成,用方括号([])表示,列表元素用逗号空格(, )分隔,例如:
example = ['abcd', 'efgh', 'ijkl']
创建空列表
example = []
访问元素
按位置或索引来访问列表中的元素,列表元素的索引从0开始而不是1,例:
print(example[0])
访问列表中的最后一个元素使用索引-1,例如:
print(example[-1])
访问列表中的倒数第二个元素使用索引-2,例如:
print(example[-2])
以此类推……
2.2 添加、修改、删除元素
添加
append()方法:添加到列表末尾,例如:
example.append('test')
insert()方法:添加到列表任意位置,需指定索引和值,后面的元素都右移一个位置,例如:
example.insert(0, 'hello')
修改
指定表名和索引,然后指定新值,例如:
example[0] = 'hello'
删除
del语句:利用索引,可删除任何位置的元素,例如:
del example[0]
pop()方法:利用索引,可删除任何位置的元素并使用其值,例如:
element = example.pop(0)
无索引默认删除末尾元素,例如:
element = example.pop()
remove()方法:利用值,可删除第一个指定的值(多次出现需要循环),例如:
example.remove('test')
注意:将元素删除之后,后面的元素将会左移
2.3 组织列表
永久排序
sort()方法:永久性对列表元素进行排序,例如:
example.sort()
按反顺序排序传递参数reverse=True,例如:
example.sort(reverse=True)
临时排序
sorted()函数:临时性对列表元素进行排序,例如:
sorted(example)
倒打印
reverse()方法:永久性反转列表元素的排列顺序(与排序有差别),例如:
example.reverse()
求长度
len()函数:可求取列表长度(包含元素个数),例如:
length = len(example)
2.4 索引超出范围
2.5 遍历整个列表
利用for循环遍历列表,格式:
for 临时变量名 in 列表名:
例如:
examples = ['test1', 'test2']
for example in examples:
print(example)
一般用单数式表示变量名,复数式表示列表名。
利用缩进来实现循环部分的多行代码,在for循环部分中想包含多少行代码都可以。
2.6 常见缩进错误反馈
忘记缩进:
不必要的缩进:
遗漏冒号:(特别注意这里容易遗漏)
2.7 数字列表
range()函数
从指定的第一个数开始生成一系列数字,到达指定的第二个数后停止,结果不包含指定的第二个数,格式:
for 临时变量名 in range(指定数一, 指定数二, 步长):
步长未指定时逐一生成数字,例如:
for num in range(1, 4):
print(num)
输出结果为:
1
2
3
步长指定时按步生成数字,例如:
for num in range(1, 4, 2):
print(num)
输出结果为:
1
3
list()函数
将参数给的一系列值转换为数字列表,格式:
列表名 = list(参数)
例如,当以range()函数生成的一系列值为其参数时:
nums = list(range(1, 4))
print(nums)
输出结果为:[1, 2, 3]
找出数字列表中最大值、最小值、总和
使用max()函数、min()函数、sum()函数。例如:
nums = list(range(1, 4))
print(max(nums))
print(min(nums))
print(sum(nums))
列表解析
将for循环和创建新元素的代码合并成一行,并自动附加新元素,格式:
列表名 = [表达式 给表达式提供值的for循环]
例如:
nums = [num-1 for num in range(1, 4)]
print(nums)
输出结果为:[0, 1, 2]
注意:这里的for循环没有冒号。
2.8 切片
切片:通过指定要使用的第一个元素的索引和最后一个元素的索引加1来处理列表中的部分元素。
特殊索引
未指定起始索引,从列表头元素开始;
未指定终止索引,到列表尾元素终止;
二者均没有指定,包含整个列表元素。
例如:
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’]
拓展:可以使用负数索引按同样方式获取列表末尾的切片。
复制列表
同时省略起始索引和终止索引,即[:],例如:
examples = ['test1', 'test2', 'test3']
copy_examples = examples[:]
区分:不能直接使用copy_examples = examples,该种写法为将变量copy_examples关联到包含在examples中的列表,即:二者都指向同一个列表。
2.9 元组
元组:不可变的列表被称为元组,即其值不可被修改。与列表类似,只不过元组使用的是圆括号来标识,例如:
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在检查是否相等时区分大小写,两个大小写不同的值会被视为不相等。若大小写无关紧要,可以利用小写转换来进行比较,例如:
example = 'TEST'
if example.lower() == 'test':
print('True')
输出结果为:True
3.3 其它关系
大于、小于、大于等于、小于等于:>、<、>=、<=。
3.4 检查多个条件
and关键字:所有条件同时满足时表达式值为Ture,否则为False。
or关键字:所有条件同时不满足时表达值为False,否则为Ture。
3.5 检查特定值
判断特定值是否已包含在列表中,使用关键字in;判断特定值是否未包含在列表中,使用关键字not in。例如:
examples = ['TEST', 'test']
if 'test' in examples:
print('True')
if 'Test' not in examples:
print('True')
输出结果均为:True
3.6 布尔表达式
与条件表达式一样,其结果要么为Ture,要么为False,例如:
example1 = True
example2 = False
3.7 if语句形式
if语句
examples = ['TEST', 'test']
if 'test' inexamples:
print('True')
if-else语句
examples = ['TEST', 'test']
if 'test' in examples:
print('True')
else:
print('False')
if-elif-else语句
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对象都可以用作字典中的值。例如:
example = {'ID': 1, 'Name': 'test'}
访问字典中的值
使用键来访问对应值,例如:
example = {'ID': 1, 'Name': 'test'}
print(example['Name'])
添加键-值对
依次指定字典名、用方括号括起来的键和相关联信息,例如:
example = {'ID': 1, 'Name': 'test'}
example['Sex'] = 'man'
注意:字典是一种动态结构,可随时在其中添加键-值对。
定义空字典
example = {}
修改键-值对
依次指定字典名、用方括号括起来的键和相关联新值,例如:
example = {'ID': 1, 'Name': 'test'}
example['Name'] = 'TEST'
删除键-值对
使用del语句,并依次指定字典名、用方括号括起来的键,例如:
example = {'ID': 1, 'Name': 'test'}
del example['Name']
注意:此种方法键-值对将被永远删除。
多行字典
示例:
examples = {
'example1': 1,
'example2': 2,
'example3': 3,
}
4.2 遍历字典
遍历所有键值对
使用for循环+items()方法,例如:
for key, value in examples.items():
print(key)
print(value)
其中,变量key用于存储键,变量value用于存储值,二者变量名可随意。
注意:遍历返回的顺序和存储的顺序可能不同,Python并不关心字典的存储顺序,只追踪键-值之间的关联关系。
遍历所有键
使用for循环+keys()方法,例如:
for key in examples.keys():
print(key)
其中,变量key用于存储键。当.keys()省略时,也将默认得到所有键而没有值。
注意:keys()方法返回的其实是一个包含字典中所有键的列表,因此可以实现按顺序遍历字典中的所有键,例如:
for key in sorted(examples.keys()):
print(key)
遍历所有值
使用for循环+values()方法,例如:
for value in examples.values():
print(value)
其中,变量value用于存储值。
注意:values()方法返回的其实是一个包含字典中所有值的列表,并没有考虑是否重复。
为了剔除返回列表中的重复项,可以使用集合(set)来表示:集合类似于列表,但是不存在重复的元素。例如:
for value in set(examples.values()):
print(value)
4.3 嵌套
嵌套:将一系列的字典存储在列表中,或将一系列的列表作为值存储在字典中,称为嵌套。
在列表中存储字典
字典作为列表的元素存诸到列表当中,例如:
example1 = {'ID':1}
example2 = {'ID':2}
example3 = {'ID':3}
examples = [example1, example2, example3]
在字典中存储列表
列表作为字典的值存储到字典当中,例如:
example = {
'ID': 1,
'TEST': ['test1', 'test2', 'test3'],
}
每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
在字典中存储字典
字典作为字典的值存储到字典当中,例如:
examples = {
'example1': {
'ID': 1,
'TEST': ['test1', 'test2', 'test3'],
},
'example2': {
'ID': 2,
'TEST': ['test4', 'test5', 'test6'],
},
'example3': {
'ID': 3,
'TEST': ['test7', 'test8', 'test9'],
},
}
(未完待续…)