- Python商业数据分析:零售和电子商务案例详解(双色)
- 零一
- 3482字
- 2025-02-23 11:04:55
1.2 Python操作入门
Python语言是一门简单易学的语言,实现同样的功能,Python的代码量相当于其他语言的1/10~1/5。
1.2.1 编写第一段Python代码
以PyCharm为例,运行PyCharm后,需要先新建计划,单击“Create New Project”选项(见图1-9)。

图1-9 PyCharm欢迎界面
设置Location(路径)和Interpreter(翻译器),笔者同时安装了Python和Anaconda,所以图1-10中的翻译器有两个可选项,二者的区别在于Anaconda中有许多预置好的库,不用再配置库了,相对方便一些。这里选择Python原版的翻译器,然后单击右下角的“Create”按钮。

图1-10 PyCharm创建项目界面
新建Project(计划)后,在左侧的项目窗口,右击鼠标,在快捷菜单中选择“New”“Python File”命令,新建Python文件(见图1-11)。

图1-11 PyCharm创建文件界面
在弹出的“New Python file”对话框中设置“Name”(文件名),然后单击右下角的“OK”按钮(见图1-12)。

图1-12 PyCharm设置文件名界面
新建文件后,右侧的空白区域就是代码编辑区(见图1-13)。从“Hello World”开始吧!在编辑区中输入print('Hello,World!')。print()是一个打印函数,表示将括号中的文本打印在即时窗口中。

图1-13 PyCharm工作界面
将鼠标光标停留在括号右侧,单击鼠标右键,在弹出的快捷菜单中选择“Run 'test'”命令,其中单引号中的test是当前的文件名,一定要注意运行的文件名和当前的文件名保持一致,如图1-14所示。运行后可以观察到即时窗口中出现“Hello,World!”。

图1-14 PyCharm运行代码结果界面
1.2.2 Python基本操作
1. Python注释
注释的目的是让阅读人员能够轻松读懂每一行代码的意义,同时也为后期代码维护提供便利。在Python中,单行注释以#号开头,在pyCharm中注释的快捷键是【Ctrl+/】,如下所示。

Python的多行注释用两个三引号(''')包含起来,如下所示。

2. Python的行与缩进
Python最具特色的就是使用缩进来表示代码块,不需要使用花括号。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数,缩进不一致会导致代码运行错误。
正确缩进的示例如下。

错误缩进的示例如下。

3. 多行语句
Python通常是一行写完一条语句,但如果语句很长,则可以通过转义符——反斜杠(\)来表示续行,使其作为完整的一行内容来输出,如下所示。

输出结果

4. 等待用户输入
Python中的input()函数是用来与用户进行交互的,如下所示。

输出结果

当用户输入Lingyi,然后按下【Enter】键时,程序会继续运行。
输出结果

1.2.3 Python变量
1. 变量赋值
变量是程序员给程序中的数据命名,便于程序员记忆及调用。
在编辑区输入以下代码。

注意:Python的变量无须提前声明,赋值的同时也就声明了变量。
2. 变量命名
Python中具有自带的关键字(保留字),任何变量名不能与之相同。在Python的标准库中提供了一个keyword模块,可以查阅当前版本的所有关键字,如下所示。

1.2.4 Python数据类型
Python中有6种常见的数据类型:number(数字)、string(字符串)、list(列表)、tuple(元组)、sets(集合)、dictionary(字典)。
1. 数字
(1)数字类型
Python 3支持4种类型的数字:int(整数类型)、float(浮点类型)、bool(布尔类型)、complex(复数类型)。在Python 3中可以使用type()函数来查看数字类型,如下所示。

(2)Python 3所支持的运算类型包括加法、减法、除法、整除、取余、乘法和乘方。

2. 字符串
(1)字符类型
字符串是由数字、字母、下画线组成的一串字符,在程序中一般使用单引号、双引号和三引号来定义字符串。单引号示例:print(′welcome to hangzhou′),其中所有的空格和制表符都照原样保留。单引号与双引号的作用其实是一样的,但是当引号里包含单引号时,该引号则需使用双引号,例如:print("what's your name?")。三引号可以指示一个多行的字符串,也可以在三引号中自由使用单引号和双引号,如下所示。

(2)引号的表示方式
如果要在单引号字符串中使用单引号本身,在双引号字符串中使用双引号本身,则需要借助于转义符——反斜杠(\),如下所示。

输出结果

注意:在一个字符串中,行末单独的反斜杠(\)表示续行,而不是开始写新的一行(详见1.2.2节),另外可以使用双反斜杠(\\)来表示反斜杠本身,而\n表示换行符,\t表示一个【Tab】键。
如果想要指示某些不需要使用转义符进行特别处理的字符串,那么需要指定一个原始字符串。原始字符串通过给字符串加上前缀r或R的方式指定,比如需要原样输出\n,而不是令其换行,则代码如下。

输出结果

(3)字符串的截取
字符串的截取格式如下所示。

此处解释一下末尾为什么+1:字符串的截取从start_index开始,到end_index结束,也就是大家常理解的左闭右开,如下所示。

(4)字符运算
尝试下面的代码。

此时,运行程序会报错,错误提示如下所示,为什么呢?

语句在赋值时右侧用了单引号,数据类型是字符串(string)。

语句的数据类型为整型(integer)。

不同的数据类型之间是不能进行运算的,但是不同数据类型可以相互转换,通过数据类型转换后就可以正常运行,修改后的代码如下。

注意:“+”用在字符串中间是连接符,用在数值中间是运算符:int()是将括号中的数值或者文本转换成整型数据类型。
运行后,即时窗口中打印的结果是2,如图1-15所示。

图1-15 PyCharm代码运行结果界面
使用“+”进行四则基础运算,代码如下。

因为相加的双方是数值型,此时“+”是运算符。
输出结果

相加的双方是字符型数据,此时“+”是连接符,代码如下。

输出结果

3. 列表
(1)列表格式。
Python列表是任意对象的有序集合,列表写在中括号“[]”里,元素之间用逗号隔开。任意对象,既可以是列表嵌套列表,也可以是字符串,代码如下。

(2)列表的切片。
每个list(list是笔者自定义的变量)中的元素从0开始计数,也可以从-1开始往后递减,-1表示列表的最后一个值,如下代码可以选取list中的第一个元素。

输出结果

列表删除操作可以使用remove()方法,只需要在变量名字后面加一个句号就可以轻松调用,PyCharm有自动联想功能,选中目标方法或者函数,按【Tab】键即可快速键入,如图1-16所示。

图1-16 PyCharm的联想输入界面
以下代码用于删除第3个元素,并用print()命令将结果打印出来。其中remove()方法用于删除列表的元素。

4. 元组
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号“()”里,元素之间则用逗号隔开,代码如下。

输出结果

5. 集合
集合(set)是一个无序不重复元素的序列,可以使用花括号“{}”或者set()函数创建集合。需要注意的是,一个空集必须使用set()函数创建,而不能使用花括号“{}”,因为花括号“{}”是用来创建空字典的,代码如下。

输出结果

集合运算的含义如下。
• s|t:并集。
• s&t:交集,共有部分的数据。
• s-t:差集。
• s^t:对称差集,去除共有部分的全部数据。
• s|=t:把t的元素并入s。
• s<t:s是否为t子集。
• s>t:s是否为t超集。
• s.isdisjoint(t):s和t是否有交集。
代码如下所示。

输出结果

6. 字典
字典是一种可变容器模型,且可存储任意类型对象,用“{}”标识。字典是一个无序的键(key)值(value)对的集合,格式如下所示。

建立一个字典,代码如下。

输出结果

其中,name是一个key(键),liming是一个value(值)。
字典增加数据时,可以使用下面的方法。

输出结果

在字典中删除数据时,可以使用del函数,代码如下。

输出结果

1.2.5 Python控制语句与函数
程序在一般情况下是按顺序执行的,编程语言提供了各种控制结构,允许复杂的执行路径。
1. 条件语句
接下来进行登录验证操作,首先给变量password赋值,然后判断password(密码)是否正确,正确就打印“login success!”(登录成功!),错误就打印“wrong password”(密码错误)。

在Python中判断是否相等可以使用两个等号“==”(单个等号是赋值)。
条件语句的语法如下。

2. 循环语句
在Python中要注意缩进,条件语句根据缩进来判断执行语句的归属。下面用for语句实现1至9的累加,代码如下。

输出结果

其中,range表示范围,i从1(第1个参数)开始迭代,每次加1(第3个参数),直到i变成10(第2个参数),因此,当i=10时不执行语句,for循环是9次迭代。#号代表注释,#号后面的文本将不会执行。在PyCharm中,如果要注释代码,则可以选中代码后按组合键【Ctrl+/】。
for循环的语法如下。

如果是列表或者字典,就不用range()函数,直接用列表或者字典,此时i表示列表或者字典中的元素,代码如下。

输出结果

循环语句除for语句外,还有while语句。
3. 其他语句
除条件语句和循环语句外,还有break语句、continue语句、pass语句。
break语句用于中止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。
break语句用在while和for循环中,代码如下。

输出结果

continue语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。continue语句同样用在while和for循环中,代码如下。

输出结果

pass语句表示空,代码如下。

运行结果为空,没有打印内容。
1.2.6 Python自定义函数
自定义函数能够提高代码的复用性,让代码更简洁。
1. 创建自定义函数
在前面介绍的函数中,print()是将结果打印出来的函数,int()是将字符串类型转换成数据类型的函数。类似这种函数,统称为内建函数,内建函数可以直接调用。
有内就有外,外建函数其实就是通常所讲的自定义函数。
自定义函数的语法如下。

def(define,即定义)是创建函数的方法,下面用def创建方程y=5x+2。

2. 调用自定义函数
调用自定义函数的方法和调用内置函数相同,直接引用函数名,设置参数即可。

输出结果
