1.5.1. Python 编程基础#
Python是一门简单、易懂的编程语言,其语法与英语语法较为类似,能用类似于英语的语句方式进行程序编写, 对非计算机专业或首次接触编程的人来讲,是一种较合适的入门编程语言。同时,Python也是目前全世界范围内研究机构及学校应用得最多的编程语言之一, 也是机器学习领域中最流行的语言,如各种深度学习框架、库均提供了Python编程接口。因此,无论是为了进行深度学习研究, 或是数据科学等其他方面的研究工作,Python都是当下最合适的编程语言。Python是一门解释执行语言,即通过解释器, 以翻译一行执行一行的方式运行程序,可以理解为逐行解释并执行代码,遇到有错误的行或执行完毕后程序停止。
截止至本书编写,Python主要有2.x和3.x两大版本,其中3.x是当前主流版本,本章中的开发环境主要基于3.8版本, 若未特别说明则也适用于3.8及新的版本。以下内容将以VSCode集成开发环境(以下简称IDE)为例, 介绍该IDE的使用方法及Python编程基础。
IDE 基础
本节以VSCode为例,使读者提前熟悉IDE的使用方法,其主界面如图1-18所示:其中红字标识的①区显示工作区中的所有源码文件, ②区是当前源码文件名,③区是源代码输入编辑区,④区是运行程序按钮,⑤区是程序输出显示区。
图 1-18 VSCode 主界面#
在进行下述编程练习时,首先在编程主界面中的①区点击鼠标右键新建文件learn.py(文件扩展名是.py, 名称为英文字母即可),在③区输入源代码并点击④区按钮后,即能在⑤区查看是否按预期输出。 在学习任何编程语言时,第一个程序往往是学习如何显示出“Hello world! ”,使用Python完成该程序的写法如下所示。
1print("Hello world!")
hello word!
该行代码中“print”是一个函数(后续代码中将大量用到此函数,用于显示数据或其他内容); 括号中的“Hello world!”是向该函数输入的参数;符号“#”后的文字为注释,用于描述该行代码的功能或作其他说明。 整行代码的意思是:调用print函数,其输入参数是“Hello world!”,点击运行按钮即可在输出区显示结果。
数据类型
Python中主要有整数(integer,简称int)、浮点数(float)、字符串(string,简称str)等数据类型, 类(class)表示某数据的类别,使用type() 函数可查看变量的数据类型。应特别注意,字符串必须用英文半角单引号' '或双引号" " ,不能使用中文全角单引号‘’或双引号“”。
1print(type(10))
2print(type("string"))
<class 'int'>
<class 'str'>
算数运算
使用Python语言所执行的加减乘除等运算与数学中的算术表示类似,+表示加法,-表示减法,* 表示乘法,/表示除法(注:除数不能是0)。
1print(1 * 2)
2print(5 / 3)
2
1.6666666666666667
常量与变量
如上示例使用的某个具体数字或某个字符串,称为常量,如:1、2.3、"string" 等。与常量对应的是变量,变量带有名称,可存放其他值,如下所示。
1varName1 = 222
2varValue2 = "come"
3print(varName1)
4print(varValue2)
222
come
运行以上代码可发现,变量就像一个抽屉,用于存放各种数据或值,在程序运行中可以向变量赋不同的值,也可以存放变量运算后的结果。
1varName1 = 222
2varValue2 = 333
3varValue3 = varName1 + varValue2
4print(varValue3)
5varValue3 = "come on!"
6varValue4 = "NoNoNo."
7varValue5 = varValue3 + varValue4
8print(varValue5)
555
come on!NoNoNo.
bool 型
bool型作为表示是/否的类型,其取值只能是True或False中的任意一个,主要用于bool运算(and、or、not)中判断某个条件的状态。
1isNum = True
2isString = False
3print(isNum and isString)
False
列表
列表可以用来表示一串数据,若要访问列表中的某个数据,可以通过带下标的索引访问,其中列表中第一个元素的下标是0;也可以访问列表中的连续几个数据(称为切片)。
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]
字典
字典是以键名:键值成对的方式存储数据,如:"age":23, "name":Leeming, "wechat": mahuaten等。
1dict1 = {"age": 23, "name": "Leeming", "wechat": "mahuaten"}
2print(dict1["age"])
3dict1["age"] = 25
4dict1["desc"] = "studentInfo"
23
if条件判断语句
if条件判断语句是指当if条件成立时才执行代码,if … else …语句是指根据不同的条件执行不同的代码。
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!
for 循环语句
在循环执行某些代码时可使用for循环语句,如循环访问列表、数组等。
1# 其中每次循环取得的元素值将存到变量i中,[...]表示一个列表
2for i in [1, 2, 3, 4, 5]:
3 print(i)
1
2
3
4
5
函数
在Python中,可以将一段有规律的、可重复使用的代码命名、定义为函数,便于调用执行,达到一次编写、多次调用的目的。同时,函数还可以定义参数,调用时将参数传递给函数中的代码,函数执行完成后可以返回值,以供调用方处理。
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
面向对象编程
面向对象编程是一种将对象作为程序基本单位的编程思想,一个对象主要由数据(又称为属性)及函数(有些称为方法)组成,其中对象在定义时叫类,在使用时需要创建该类的一个实例化对象,以猫举例如下。
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实例化一个对象出来,设置对象的属性后,该对象即表示某只具体的猫,以上即是类和对象的区别。