1.5.1. Python 编程基础#

Python是一门简单、易懂的编程语言,其语法与英语语法较为类似,能用类似于英语的语句方式进行程序编写, 对非计算机专业或首次接触编程的人来讲,是一种较合适的入门编程语言。同时,Python也是目前全世界范围内研究机构及学校应用得最多的编程语言之一, 也是机器学习领域中最流行的语言,如各种深度学习框架、库均提供了Python编程接口。因此,无论是为了进行深度学习研究, 或是数据科学等其他方面的研究工作,Python都是当下最合适的编程语言。Python是一门解释执行语言,即通过解释器, 以翻译一行执行一行的方式运行程序,可以理解为逐行解释并执行代码,遇到有错误的行或执行完毕后程序停止。

截止至本书编写,Python主要有2.x和3.x两大版本,其中3.x是当前主流版本,本章中的开发环境主要基于3.8版本, 若未特别说明则也适用于3.8及新的版本。以下内容将以VSCode集成开发环境(以下简称IDE)为例, 介绍该IDE的使用方法及Python编程基础。

  1. IDE 基础

本节以VSCode为例,使读者提前熟悉IDE的使用方法,其主界面如图1-18所示:其中红字标识的①区显示工作区中的所有源码文件, ②区是当前源码文件名,③区是源代码输入编辑区,④区是运行程序按钮,⑤区是程序输出显示区。

图 1-18 VSCode 主界面

图 1-18 VSCode 主界面#

在进行下述编程练习时,首先在编程主界面中的①区点击鼠标右键新建文件learn.py(文件扩展名是.py, 名称为英文字母即可),在③区输入源代码并点击④区按钮后,即能在⑤区查看是否按预期输出。 在学习任何编程语言时,第一个程序往往是学习如何显示出“Hello world! ”,使用Python完成该程序的写法如下所示。

chapter_1_5_1_01.py#
1print("Hello world!")
hello word!

该行代码中“print”是一个函数(后续代码中将大量用到此函数,用于显示数据或其他内容); 括号中的“Hello world!”是向该函数输入的参数;符号“#”后的文字为注释,用于描述该行代码的功能或作其他说明。 整行代码的意思是:调用print函数,其输入参数是“Hello world!”,点击运行按钮即可在输出区显示结果。

  1. 数据类型

Python中主要有整数(integer,简称int)、浮点数(float)、字符串(string,简称str)等数据类型, 类(class)表示某数据的类别,使用type() 函数可查看变量的数据类型。应特别注意,字符串必须用英文半角单引号' '或双引号" " ,不能使用中文全角单引号‘’或双引号“”。

chapter_1_5_1_02.py#
1print(type(10))
2print(type("string"))
<class 'int'>
<class 'str'>
  1. 算数运算

使用Python语言所执行的加减乘除等运算与数学中的算术表示类似,+表示加法,-表示减法,* 表示乘法,/表示除法(注:除数不能是0)。

chapter_1_5_1_03.py#
1print(1 * 2)
2print(5 / 3)
2
1.6666666666666667
  1. 常量与变量

如上示例使用的某个具体数字或某个字符串,称为常量,如:1、2.3、"string" 等。与常量对应的是变量,变量带有名称,可存放其他值,如下所示。

chapter_1_5_1_04.py#
1varName1 = 222
2varValue2 = "come"
3print(varName1)
4print(varValue2)
222
come

运行以上代码可发现,变量就像一个抽屉,用于存放各种数据或值,在程序运行中可以向变量赋不同的值,也可以存放变量运算后的结果。

chapter_1_5_1_05.py#
1varName1 = 222
2varValue2 = 333
3varValue3 = varName1 + varValue2
4print(varValue3)
5varValue3 = "come on!"
6varValue4 = "NoNoNo."
7varValue5 = varValue3 + varValue4
8print(varValue5)
555
come on!NoNoNo.
  1. bool 型

bool型作为表示是/否的类型,其取值只能是True或False中的任意一个,主要用于bool运算(and、or、not)中判断某个条件的状态。

chapter_1_5_1_06.py#
1isNum = True
2isString = False
3print(isNum and isString)
False
  1. 列表

列表可以用来表示一串数据,若要访问列表中的某个数据,可以通过带下标的索引访问,其中列表中第一个元素的下标是0;也可以访问列表中的连续几个数据(称为切片)。

chapter_1_5_1_07.py#
1arr1 = [1, 2, 3, 4, 5]
2print(arr1)
3print(arr1[0])
4print(arr1[1:4])
5print(arr1[:-3])
[1, 2, 3, 4, 5]
1
[2, 3, 4]
[1, 2]
  1. 字典

字典是以键名:键值成对的方式存储数据,如:"age":23, "name":Leeming, "wechat": mahuaten等。

chapter_1_5_1_08.py#
1dict1 = {"age": 23, "name": "Leeming", "wechat": "mahuaten"}
2print(dict1["age"])
3dict1["age"] = 25
4dict1["desc"] = "studentInfo"
23
  1. if条件判断语句

if条件判断语句是指当if条件成立时才执行代码,if … else …语句是指根据不同的条件执行不同的代码。

chapter_1_5_1_09.py#
1isNum = True
2if isNum:
3    print("It’s a number!")
4isBigger = 3 > 2
5if isBigger:
6    print("Bigger!")
7else:
8    print("Smaller!")
It’s a number!
Bigger!
  1. for 循环语句

在循环执行某些代码时可使用for循环语句,如循环访问列表、数组等。

chapter_1_5_1_10.py#
1# 其中每次循环取得的元素值将存到变量i中,[...]表示一个列表
2for i in [1, 2, 3, 4, 5]:
3    print(i)
1
2
3
4
5
  1. 函数

在Python中,可以将一段有规律的、可重复使用的代码命名、定义为函数,便于调用执行,达到一次编写、多次调用的目的。同时,函数还可以定义参数,调用时将参数传递给函数中的代码,函数执行完成后可以返回值,以供调用方处理。

chapter_1_5_1_11.py#
 1def showText():
 2    print("***************")
 3    print("This is first text line")
 4    print("***************")
 5
 6
 7showText()
 8
 9
10def add(a, b):
11    sum = a + b
12    print(a, "+", b, "=", sum)
13    return sum
14
15
16rtnValue = add(3, 5)
17print("add(3,5) return:", rtnValue)
***************
This is first text line
***************
3 + 5 = 8
add(3,5) return: 8
  1. 面向对象编程

面向对象编程是一种将对象作为程序基本单位的编程思想,一个对象主要由数据(又称为属性)及函数(有些称为方法)组成,其中对象在定义时叫类,在使用时需要创建该类的一个实例化对象,以猫举例如下。

chapter_1_5_1_12.py#
 1class Cat(object):
 2    def __init__(self, age1, color1, nickName1):
 3        self.age = age1
 4        self.color = color1
 5        self.nickName = nickName1
 6
 7    def showCatInfo(self):
 8        print("This cat is ", self.nickName)
 9
10    def sound(self):
11        print("Meow…", "--by cat:", self.nickName)
12
13
14cat1 = Cat(3, "White", "DuduMiao")

上述代码定义了一个Cat类,用于抽象表示猫这类动物,当要表示具体某只猫时,则需用类Cat实例化一个对象出来,设置对象的属性后,该对象即表示某只具体的猫,以上即是类和对象的区别。