大数据——Python环境搭建及Python数据类型

下载安装Anaconda

  • 下载Anaconda
    • 在官网上下载安装包
      • https://www.anaconda.com/distribution/
  • 命令安装Anaconda
    • Anaconda3-5.1.0-Windows-x86_64.ext

在这里插入图片描述

运行Python自带Demo

  • 启动与演示示例
python –m turtledemo
  • 使用方法
    • 示例代码
    • 执行效果

在这里插入图片描述

Python开发工具

  • Python解释器
    • 启动方法:python
  • IPython交互式shell
    • 启动方法:ipython
  • Jupyter Notebook
    • 基于Web的可支持实时代码的应用
    • 启动方法:jupyter notebook
      • 输入命令的目录就是工作其实目录

在这里插入图片描述

Jupyter Notebook介绍

  • Jupyter Notebook是一个Web应用
    • Python Kernel用于执行 Python代码
      • Python Kernel与Jupyter之间的关系
  • 使用Jupyter Notebook的方法
    • 创建Python Notebook文件
      • *.ipynb
      • 支持文本、代码、图片等格式
    • 在Jupyter Notebook中编写代码
    • 执行Python代码

PyCharm集成开发环境

  • JetBrains公司开发的IDE
  • 使用方式与IDEA相似
  • 适合于工程类Python应用开发
  • 下载安装PyCharm Community版
    • 创建工程
    • 设置解释器

Python的工程结构

  • Python工程结构

    • 模块(module)
      • 一个Python文件就是一个模块
        • .py source code
        • .pyc compiled bytecode
        • .pyo optimized bytecode
    • 包(package)
      • 包含多个Pythonwe文件
      • _init_.py
  • 导入已有模块

    • import sys
    • from os import path

Python语句块规范

  • 缩进
    • Python中要求强制缩进以区分层次和代码块
    • 缩进可以使用2个空格、4个空格、1个tab键实现
    • 推荐只使4个空格进行缩进
      • 因缩进方式不同会引起编译错误提示
      • 需要手动修改统一缩进方式
    • PyCharm默认设置不使用“TAB缩进符”,而是设置一个TAB=4个空格

Python的注释方法与常见内置函数

  • Python注释方法

    • 单行注释
      • 使用“#”进行注释
    • 多行注释
      • 使用三个单引号或三个双引号进行注释
  • 常见内置函数

函数名说明
type()返回对象类型
dir()函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表
input()/print()输入/打印输出
id()返回对象的内存地址

Python变量的特点

  • 变量名的命名原则
    • 以_或字母开头
    • 变量名大小写敏感
    • 不能使用Python保留的关键字
      • 查看Python关键的方法:import keyword
  • Python变量的特点
    • 使用变量前不需要声明
    • 变量的类型不固定
    • Python变量是实际值的引用
      • id(var)判断两个变量是否引用了同一个值

在这里插入图片描述

数值类型

  • 数值类型包括整型和浮点型
类型类型举例
int(整数)十进制123、1_234_789
int(整数)八进制0o123、0o_1_234_567、0O123
int(整数)十六进制0x123、0x_1_234_567、0X_BAD_BEEF
int(整数)十六进制二进制
float()浮点数-1.23、1_2_3.、.123、.1_2_3
float()浮点数指数表示1.23e4、1.2_3E-4、0E0、1e+1_1

数值类型操作符

操作符说明
x+y加法
x-y减法
x*y乘法
x/y除法
x//y除后取整
x%y除后取余
-x负数
abs(x)取绝对值
int(x)转换成整数
float(x)转换成浮点数
divmod(x,y)返回一个包含商和余数的元组
pow(x,y)返回x的y次方
x**y返回x的y次方
round(x[,n])方法返回浮点数x的四舍五入值

列表

  • 列表的特点
    • 用来存储多个数据的数据结构
    • 储存的数据是有序的,可使用位置索引
    • 列表长度和元素都是可变的
    • 可储存不同类型的数据
  • 列表的使用方法
    • 创建列表
      • [‘one’,2,[3,4],(5,6)]
    • 使用索引获取列表中的数据
      • x[0],x[2],x[-1],x[-3]
    • 判断值是否存在于列表汇总
      • in和not in
        在这里插入图片描述

元组(tuple)

  • 元组的特点

    • 储存形式与列表相似
    • 与列表不同的地方
      • 元素不可修改
      • 长度不可改变
    • 常用于安全级别较高的场景应用
  • 元组的使用方法

    • 创建元组
    • 使用索引获取元组中的数据
      • x[0],x[2],x[-1],x[-3]
    • 判断值是否存在于列表汇总
      • in和not in
t1=(1, 2, 3, 4, 5)
t2='one', 2, [3, 4], (5, 6)
t3=tuple([1,2,3])

列表/元组操作

  • 通过切片获得新的列表/元组
    • [start: end:step]
      • start:起始索引,从0开始,-1表示结束
      • end:结束索引
      • step:步长,end-start,步长为正时,从左向右取值。步长为负时,反向取值
  • 对列表x=[1,2,3,4,5,6,7,8,9,0]切片
切片结果
x[1:3][2,3]
x[-3:-1][8,9]
x[:4][1,2,3,4]
x[6:][7,8,9,0]
x[1:6:2][2,4,6]
x[-8: -1:3][3,6,9]
x[6:1:-2][7,5,3]
x[-1:-8:-3][0,7,4]
  • 遍历列表/元组中的元素
for  v  in  x:
    print(v)
  • zip()函数
    • 将可迭代的对象作为参数,将对象中的对应的元素打包成一个个元组,然后返回由这些元组组成的对象
matrix = [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11]]
list(zip(*matrix))    # result: [1, 5, 9,2, 6, 10,3, 7, 11]
t = (1,2,3,4)
list(zip(t))

range类型

  • range类型
    • 一段不可变的数字序列
    • 经常被用作for里面来指定循环次数
  • 创建range对象
    • range(start,stop,step)
      • start的默认值是0,step的默认值是1
range对象数列
range(4)0,1,2,3
range(1,4)1,2,3
range(1,4,2)1,3
range(4,1,-1)4,3,2

range操作方法

  • range类型也支持切片
    • x=range(10)
切片结果
x[1:3]range(1,3)
x[-3:-1]range(7,9)
x[:4]range(0,4)
x[6:]range(6:10)
x[1:6:-2]range(1,6,2)
x[-8: -1:3]range(2,9,3)
x[6:1:-2]range(6,1-2)
x[-1:-8:-3]range(9,2,-3)
  • 使用for循序遍历range()
for  v  in  range(10):
    print(v)

列表、元组、range转换

  • 列表转元组
t = tuple(l)# l是列表
  • 元组转列表
l = list(t)# t是元组
  • range转列表
l = list(r)# r是range
  • range转tuple
t = tuple(r)# r是range

pack&unpack

  • pack
    • 变量转换成序列
t = 1,2,3 #t是(1,2,3
  • unpack
    • 序列转换成变量
a,b,c=t #a=1,b=2,c=3
  • unpack中使用*
a, b, *c = 1,2,3,4,5		   # a=1, b=2, c=[3, 4, 5]
a, *b, c = 1,2,3,4,5		   # a=1, b=[2, 3, 4], c=5
*a, b, c = 1,2,3,4,5		   # a=[1, 2, 3], b=4, c=5
*a, b, c, d, e, f = 1,2,3,4,5    # a=[], b=1, c=2, d=3, e=4, f=5
  • 交换两个变量的值
a, b = b, a
  • 在for循环中unpack元组
l = [(1,2), (3,4), (5,6)]
result=0
for x, y in l:
	result += x*y
print(result)

常见的序列操作

s = [1,2,3] t = [4,5,6] n = 2
操作符说明
s+t拼接:[1,2,3,4,5,6]
sn or ns乘法:[1,2,3,1,2,3]
len(s)计算序列的长度:3
min(s)获得序列中的最小值:1
max(s)获得序列中的最大值:3
s.index(x[,i[,j]])获得第1个x元素的索引(索引值在i和j之间)
s.count(x)序列x元素出现的次数

可变序列支持的操作

操作符说明
s[i]=x更新指定索引的值
s[i:j]=t使用序列t替换s中的i到j的值
del s[s:j]等同于s[i:j]=[](左闭右开)
s[i:j:k] = t使用序列t中值替换s[i:j:k]的值
del s[i:j:k]删除s[i:j:k]的值
s.append(x)将值x添加到序列的末尾
s.clear()清空序列,相当于del s[:]
s.copy()创建一个s的浅拷贝
s.extend(t)使用序列t扩展序列s
s.insert(i, x)在序列s的i索引处插入值x
s.pop(i)返回序列s中索引为i的值,并将该值从序列中移除
s.remove(x)就昂序列中第一个值为x的元素移除
s.reverse()将序列s倒序排列

Set(集合)

  • 储存形式与列表相似
    • 集合中保存的数据具有唯一性,不可重复
    • 集合中保存的数据时无序的
    • 往集合中添加重复数据,集合将只保留一个
  • set集合常被用来去重或者过滤
  • 创建一个集合
    • 空集合:变量=set()
    • 非空集合:变量=(元素1,元素2,…)
  • 集合操作
    • 判断值是否存在于集合中
      • in和not in

集合操作

  • 集合的并集
newSet = s1 | s2 | s3
newSet = s1.union(s2, s3)
  • 集合的交集
newSet = s1 & s2 & s3
newSet = s1.intersection(s2, s3)
  • 集合的差集
newSet = s1 - s2 - s3
newSet = s1.difference(s2, s3)
  • 判断是否是超集
s1.issuperset(s2)
  • 判断是否是子集
s2.issubset(s1)
  • 判断两个集合是否相交
s1.isdisjoint(s2)
  • 集合的遍历与列表的遍历方法相同

字典

  • 通过键值对(key-value)来存储数据
  • 储存的数据时无序的,可使用键索引
  • 键是必须唯一,但值可以不唯一
  • 键的类型只能是字符串、数字或元组,值可以是任何
  • 字典操作
    • 创建字典
empty_dict = {} 
dict_1 = {1:'one', 2:'two', 3:'three'}
dict_2 = dict(one=1, two=2, three=3)

字典操作

  • 获取字典中的值
x = d[1] #1是Key,不是索引
x = d['three']
x = d.get(3, 'This value when key is not found')
  • 判断值是否是字典的键
    • in和not in
  • 遍历字典
#遍历字典的键for k in x: #x.keys()
    print(k)
    
#遍历字典的值for v in x.values():
    print(v)
    
#遍历字典的键和值for k,v in x.items():
    print(k,v)

字符串

  • Python定义字符串的三种形式
    • 单引号
    • 双引号
    • 三引号(允许字符串换行)
#单引号 
str1 = 'allows embedded "double" quotes'
#双引号 
str2 = "allows embedded 'single' quotes"
#三引号
str3= '''Three single quotes,
	span multiple lines'''
str4="""Three double quotes,  
	span multiple lines"""

字符串操作

字符串操作说明
string[n:m]字符串切片
int()字符串转数值类型
str()数值类型转字符串
ord()字符转Unicode码
chr()Unicode码转字符串
lower()转成小写字符串
upper()转成大写字符串
split()分隔字符串
join()将序列中的元素以指定的字符连接生成一个新的字符串
strip()用以移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
lstrip()用于移除字符串头指定的字符(默认为空格或换行符)或字符序列
rstrip()用于移除字符串尾指定的字符(默认为空格或换行符)或字符序列
in判断是否为子串
find()返回子串开始的索引值,找不到子串时返回-1
index()返回子串开始的索引值,找不到子串时抛出异常
count()统计字符串里某个字符出现的次数
replace()方法把字符串中的就字符替换成新字符串
startswith()检查字符串是否是以指定子字符串开头
endswith()检查字符串是否是以指定子字符串结尾
maketrans()
translate()
字符串转换,maketrans()设置转换模式,translate()执行转换操作

None和布尔值

  • None
    • 是一个特殊的常量,表示空值
  • Python中很多类型可以表示布尔值
TrueFalse
不为0的数值0, 0.0, 0+0j
非空字符串空字符串
非空列表空列表
非空字典空字典
非空集合空集合
-None
  • 布尔操作符
    • or、and、not

比较运算符

操作符解释
<小于
<=小于等于
>大于
>=大于等于
==等于
!=不等于
is判断两个标识符是不是引用自一个对象
is not判断两个标识符是不是引用自不同对象

流程控制语句

  • 条件选择语句
if guess > secret : 
    print("too large")
elif guess < secret :	# elif is optional
    print("too small")
else :			# else is optional
    print("equals")
  • 循环语句
while  guessed != secret :
     guessed = int(input("Guess a number: "))
else : 	 # else is optional
     print("Congratulation!")


for   i   in  range(0, 8, 2) :
     print(i)
else : 		# else is optional
     print("Done!")
  • break
    • break语句在循环中的作用是跳出当前循环语句
    • 循环语句的else子句不会被执行
  • continue
    • continue语句在循环中的作用是跳出本次循环
    • 遇到了continue将跳出本次循环的剩余代码,直接开始下一次循环
  • pass
    • 占位语句

三元表达式

  • 效果等同于一个if…else语句
result=1 if x<y else2
  • 三元表达式示例
'even' if x%2==0 else 'odd'
'A' if x%2==0 else 'B' if x%5==0 else 'C

列表生成式

  • 用列表生成式创建列表
  • 列表生成式
    • 可以生成list列表的表达式

在这里插入图片描述

列表生成式举例

需求描述列表生成式
0~9的平方[x**2 for x in range(10) ]
2~99中的偶数[x for x in range(2,100) if x % 2 == 0]
π的精度逐渐升高(1~9位小数)from math import pi
[str(round(pi, i)) for i in range(1, 10)]
[[ 1, 0, 0, 1 ],[ 0, 1, 1, 0 ], [ 0, 1, 1, 0 ],[ 1, 0, 0, 1 ]][[1 if r==c or r+c==3 else 0 for c in range(4)]for r in range(4)]
字符串’what is this’中出现的字母(生成集合)sentence = ‘what is this’
{ c for c in sentence if c != ’ ’ }
字符串’what is this’中含i单词(生成生成器)sentence = ‘what is this’
(w for w in sentence.split() if ‘i’ in w)
字符串’what is this’中单词的辅音字母(生成字典)sentence = ‘what is this’
{ w:{c for c in w if c not in ‘aeiou’} for w in sentence.split() }

字典、集合生成式

  • 字典生成式
    • {k:v for k,v in input if xxxx }
#将所有的key值变为大写
d = dict(a=1,b=2)
print({k.upper():v for k,v in d.items()})


#大小写key值合并, 统一以小写key值输出;
d = dict(a=2, b=1, c=2, B=9, A=5)
print({k.lower():d.get(k.lower(),0)+d.get(k.upper(),0) for k in d})
  • 集合生成式
    • {v for v in input if xxxx}
#筛选字符串中的字母
{x for x in 'abracadabra' if x not in 'abc'}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值