Logo
Section 1 / 2

Python编程基础

本节课介绍了Python编程的基础知识。

导入

Python编程基础

本节课介绍了Python编程的基础知识。

Python 简介

Python 由吉多·范罗苏姆(Guido van Rossum)在 20 世纪 80 年代末至 90 年代初,于荷兰国家数学与计算机科学研究所设计开发。Python 源自 Unix shell 命令行解释器,并借鉴了 C 和 C++ 等多种编程语言的特性,其设计目标是让开发者能用比其他语言更少的代码行数编写程序。与其他编程语言不同的是,Python 使用大量英文关键词,而许多语言则使用标点符号来实现相同功能。

在 Python 中,源代码由解释器读取并执行输出。任何错误,包括格式不当、函数名拼写错误或脚本中残留的随机字符,都会被 Python 解释器检测到,并导致语法错误。

本课将介绍 Python 的基本语法,帮助你编写流畅且高效的代码。

注释

在编程中,添加注释是一种良好习惯,有助于标明代码的目的和内容。

在 Python 中,可通过 #(井号)符号添加注释。该符号之后同一行的所有内容都会被 Python 解释器忽略。

1#从下载文件夹导入墨尔本房屋数据集 2dataframe = pd.read_csv('~/Downloads/Melbourne_housing_FULL.csv')

在此示例中,第二行代码会被执行,而第一行注释则被解释器忽略。

缩进与空格

与其他编程语言不同,Python 使用缩进来组织代码块(如函数、循环等),而不是依赖关键字或标点符号来划分代码块。

1new_user = [ 2 66.00, #每日网站停留时间 3 48, #年龄 4 24593.33, #地区收入 5 131.76, #每日互联网使用时长 6 1, #男性 7 0, #国家_阿富汗 8 1, #国家_阿尔巴尼亚 9 0, #国家_阿尔及利亚 10 ]

在表达式中,空格对 Python 解释器无影响。也就是说,8+4 和 8 + 4 是等效的。为提高可读性,建议在字符之间添加适当空格。

Python 数据类型

下表列出了 Python 中常见的数据类型。

...
常见 Python 数据类型

在机器学习中,最常处理的数据类型是包含字符串、整数或浮点数的列表。

字符串变量也称为字符型或字母数字型变量,可以包含字母、数字以及特殊符号,例如井号(#)或下划线(_)。

Python 中的算术运算

Python 中常用的算术运算符如下表所示。

...
Python 中常用算术运算符

Python 遵循标准的数学运算优先级规则。例如,乘法和除法先于加法和减法执行。

12 + 2 * 3 2#该表达式的输出结果为 8。

与常规算术一样,可使用括号改变运算顺序,如下所示:

1(2 + 2) * 3 2#该表达式的输出结果为 12。

变量赋值

在编程中,变量用于将数据值存储在计算机内存中,以便后续使用。通过调用变量名,Python 解释器可以引用和操作之前定义的代码。你可以自由选择变量名,但需遵守以下规则:

  • 只能包含字母、数字和下划线(A-Z、0-9、_)。
  • 必须以字母或下划线开头,不能以数字开头。
  • 不能使用 Python 关键字(如 if、class 或 return)作为变量名。
  • 变量名区分大小写,例如 dataframe 和 Dataframe 被视为两个不同的变量。

在 Python 中,使用 = 运算符进行变量赋值。

1dataset = 8

但 Python 不允许变量名中包含空格,必须使用下划线连接多个单词。

1my_dataset = 8

现在可以通过调用变量名 my_dataset 来引用其存储的值(8)。
变量具有“可变”特性,即可以重新赋值:

1my_dataset = 8 + 8 2#此时 my_dataset 的值变为 16。

需要注意的是,Python 中的等号运算符(=)与数学中的等号含义不同。
在 Python 中,= 表示赋值操作,不遵循数学逻辑。因此,若要计算一个数学表达式,可直接运行代码而不使用等号运算符:

12 + 2 2#Python 将返回 4。

若要判断某个数学关系是否为真或假,应使用 ==:

12 + 2 == 4 2#Python 将返回 True。

print 函数

print() 函数用于输出括号内的信息,是 Python 中最常用的函数之一。尽管它功能简单——仅输出指定内容——看似并不重要,但实际上非常关键。

首先,print 在调试(查找和修复代码错误)中非常有用。例如,在修改变量后,可用 print 查看当前值:

1my_dataset = 8 2my_dataset = 8 + 8 3print(my_dataset) 4 5#输出:16

另一个常见用途是将非处理性信息以字符串形式打印出来。这意味着括号内的字符串会直接输出,不参与其他代码逻辑。你可以利用这一特性为代码添加上下文说明,提升可读性。这些输出不会影响代码性能,而普通注释(#)则不会显示在运行结果中。

1输入:print ("训练集平均绝对误差: %.2f" % mae_train) 2#输出:训练集平均绝对误差: 27834.12

例如,这条打印语句向用户说明了 Python 解释器处理了哪些内容才得到该结果。如果没有 print("测试集平均绝对误差:") 这类提示,代码执行后只会显示一串无标签的数字。

请注意,括号内的字符串必须用双引号 "" 或单引号 '' 包裹,但引号必须成对匹配:以单引号开头就必须以单引号结尾,以双引号开头就必须以双引号结尾。print 函数在运行后会自动去除引号。如果希望在输出中包含引号,可以在双引号内使用单引号,反之亦然:

1输入:print("'测试集平均绝对误差'") 2#输出:'测试集平均绝对误差' 3 4输入:print("你叫什么名字?") 5#输出:你叫什么名字?

索引

索引是指从复合数据类型(如列表或字符串)中选取单个元素的操作。每个元素的位置编号从 0 开始,可通过方括号内的索引号访问对应元素。

1#示例 1 2my_string = "hello_world" 3my_string[1] 4#索引返回值为 e。
1#示例 2 2my_list = [10, 20 , 30 , 40] 3my_list[0] 4#索引返回值为 10。

切片

切片允许你从数据集合中提取一段连续的子集,而非仅获取单个元素。使用冒号(:)实现切片操作。

1#示例 1 2my_list = [10, 20, 30, 40] 3my_list[:3]

此例中,切片从起始位置开始,直到索引 3(不含),返回值为 10、20 和 30。

1#示例 2 2my_list = [10, 20, 30, 40] 3my_list[1:3]

此例中,切片从索引 1 开始,直到索引 3(不含),返回值为 20 和 30。

打印列名

以下是一段用于打印列名的代码快捷方式,包含适合作为模型预测输入的格式,相关内容在之前的课程中有讨论:

1cols = df.columns.tolist() 2print("new_project = [") 3for item in cols: 4 print("\t0, "+"#"+item) 5print("]")

请在 Jupyter Notebook 中运行这段临时代码。

然后将生成的输出复制粘贴回笔记本中,作为下一部分代码的基础。注意:此临时代码会打印所有变量(包括 X 和 y 变量),你可能需要从中移除因变量(y),即 State_successful。

结论

开发环境