其他
零基础入门Python:基本命令、函数、数据结构
导读:本文对Python的基本使用做一个简单的介绍。限于篇幅,本文不可能详细讲解Python的使用,只是针对本书涉及的数据挖掘案例所用到的代码进行基本讲解。如果读者是初步接触Python,并且使用Python的目的就是数据挖掘,那么相信本文的介绍对你来说是比较充足的了。
作者:张良均 谭立云 刘名军 江建明
来源:大数据DT(ID:hzdashuju)
01 运行方式
本文示例代码使用的Python版本为Python 3.6。运行Python代码有两种方式:
一种方式是启动Python,然后在命令窗口下直接输入相应的命令;
另一种方式就是将完整的代码写成.py脚本,如hello.py,然后在对应的路径下通过python hello.py执行。
hello.py脚本中的代码如下:
# hello.py
print('Hello World!')
脚本的执行结果如图所示。
a = 2 + 3 # 这句命令的意思是将2+3的结果赋值给a
a = 2 + 3
'''
这里是Python的多行注释。
这里是Python的多行注释。
'''
# -*- coding: utf-8 -*
print('世界,你好!')
代码清单1:Python基本运算
a = 2
a * 2
a ** 2
a, b, c = 2, 3, 4
a = 2
b = 3
c = 4
代码清单2:Python字符串操作
s = 'I like python'
s + ' very much' # 将s与' very much'拼接,得到'I like python very much'
s.split(' ') # 将s以空格分割,得到列表['I', 'like', 'python']
if 条件1:
语句2
elif 条件3:
语句4
else:
语句5
代码清单3:错误的缩进
if a==1:
print(a)# 缩进两个空格
else:
print('a不等于1')# 缩进三个空格
代码清单4:while循环
s,k = 0,0
while k < 101:# 该循环过程就是求1+2+3+...+100
k = k + 1
s = s + k
print(s)
代码清单5:for循环
s = 0
for k in range(101): # 该循环过程也是求1+2+3+...+100
s = s + k
print(s)
代码清单6:使用range生成等差数列
s = 0
if s in range(4):
print('s在0, 1, 2, 3中')
if s not in range(1, 4, 1):
print('s不在1, 2, 3中')
代码清单7:自定义函数
def add2(x):
return x+2
print(add2(1)) # 输出结果为3
代码清单8:返回列表和返回多个值的自定义函数
def add2(x = 0, y = 0): # 定义函数,同时定义参数的默认值
return [x+2, y+2] # 返回值是一个列表
def add3(x, y):
return x+3, y+3 # 双重返回
a, b = add3(1,2) # 此时a=4,b=5
代码清单9:使用lambda定义函数
f = lambda x : x + 2 # 定义函数f(x)=x+2
g = lambda x, y: x + y # 定义函数g(x,y)=x+y
c = [1, 'abc', [1, 2]]
'''
c是一个列表,列表的第一个元素是整型1,第二个是字符串'abc',第三个是列表[1, 2]
'''
cmp(a, b):比较两个列表/元组的元素 len(a):列表/元组元素个数 max(a):返回列表/元组元素最大值 min(a):返回列表/元组元素最小值 sum(a):将列表/元组中的元素求和 sorted(a):对列表的元素进行升序排序
a.append(1):将1添加到列表a末尾 a.count(1):统计列表a中元素1出现的次数 a.extend([1, 2]):将列表[1, 2]的内容追加到列表a的末尾 a.index(1):从列表a中找出第一个1的索引位置 a.insert(2, 1):将1插入列表a中索引为2的位置 a.pop(1):移除列表a中索引为1的元素
代码清单10:使用append函数对列表元素进行操作
a = [1, 2, 3]
b = []
for i in a:
b.append(i + 2)
代码清单11:使用列表解析进行简化
a = [1, 2, 3]
b = [i+2 for i in a]
d = {'today':20, 'tomorrow':30}
代码清单12:访问字典中的元素
d['today'] # 该值为20
d['tomorrow'] # 该值为30
代码清单13:通过dict或者dict.fromkeys创建字典
dict([['today', 20], ['tomorrow', 30]]) # 也相当于{'today':20, 'tomorrow':30}
dict.fromkeys(['today', 'tomorrow'], 20) # 相当于{'today':20, 'tomorrow':20}
代码清单14:创建集合
s = {1, 2, 2, 3} # 注意2会自动去重,得到{1, 2, 3}
s = set([1, 2, 2, 3]) # 同样地,它将列表转换为集合,得到{1, 2, 3}
代码清单15:集合运算
a = t | s # t和s的并集
b = t & s # t和s的交集
c = t – s # 求差集(项在t中,但不在s中)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
代码清单16:使用列表解析操作列表元素
b = [i+2 for i in a]
代码清单17:使用map函数操作列表元素
b = map(lambda x: x+2, a)
b = list(b) # 结果是[3, 4, 5]
代码清单18:使用reduce计算n的阶乘
from fuctools import reduce# 导入reduce函数
reduce(lambda x,y: x*y, range(1, n+1))
代码清单19:使用循环命令计算n的阶乘
s = 1
for i in range(1, n+1):
s = s * i
代码清单20:使用filter筛选列表元素
b = filter(lambda x: x > 5 and x < 8, range(10))
b = list(b) # 结果是[6, 7]
代码清单21:使用列表解析筛选
b = [i for i in range(10) if i > 5 and i < 8]
代码清单22:使用math库进行数学运算
import math
math.sin(1) # 计算正弦
math.exp(1) # 计算指数
math.pi # 内置的圆周率常数
代码清单23:使用别名导入库
import math as m
m.sin(1) # 计算正弦
代码清单24:通过名称导入指定函数
from math import exp as e # 只导入math库中的exp函数,并起别名e
e(1) # 计算指数
sin(1) # 此时sin(1)和math.sin(1)都会出错,因为没被导入
代码清单25:导入库中所有函数
# 直接导入math库,也就是去掉math.,但如果大量地这样引入第三库,就容易引起命名冲突
from math import *
exp(1)
sin(1)
代码清单26:导入future特征
# 将print变成函数形式,即用print(a)格式输出
from __future__ import print_function
# 3.x的3/2=1.5,3//2才等于1;2.x中3/2=1
from __future__ import division
下载源代码自行安装:安装灵活,但需要自行解决上级依赖问题 用pip命令安装:比较方便,自动解决上级依赖问题 用easy_install命令安装:比较方便,自动解决上级依赖问题,比pip稍弱 下载编译好的文件包:一般是Windows系统才提供现成的可执行文件包 系统自带的安装方式:Linux系统或Mac系统的软件管理器自带了某些库的安装方式
更多精彩👇