大数据——Python环境搭建及Python数据类型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了大数据——Python环境搭建及Python数据类型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含10253字,纯文字阅读大概需要15分钟。
内容图文
![大数据——Python环境搭建及Python数据类型](/upload/InfoBanner/zyjiaocheng/608/b4c5ae57a5db46d4a9cb2d9640e871ce.jpg)
Python环境搭建及Python数据类型
- 下载安装Anaconda
- 运行Python自带Demo
- Python开发工具
- PyCharm集成开发环境
- Python的工程结构
- Python语句块规范
- Python的注释方法与常见内置函数
- Python变量的特点
- 列表
- 元组(tuple)
- 列表/元组操作
- range类型
- range操作方法
- 列表、元组、range转换
- pack&unpack
- 常见的序列操作
- 可变序列支持的操作
- Set(集合)
- 字典
- 字典操作
- 字符串
- None和布尔值
- 比较运算符
- 流程控制语句
- 三元表达式
- 列表生成式
- 字典、集合生成式
下载安装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之间的关系
- Python Kernel用于执行 Python代码
- 使用Jupyter Notebook的方法
- 创建Python Notebook文件
- *.ipynb
- 支持文本、代码、图片等格式
- 在Jupyter Notebook中编写代码
- 执行Python代码
- 创建Python Notebook文件
PyCharm集成开发环境
- JetBrains公司开发的IDE
- 使用方式与IDEA相似
- 适合于工程类Python应用开发
- 下载安装PyCharm Community版
- 创建工程
- 设置解释器
Python的工程结构
-
Python工程结构
- 模块(module)
- 一个Python文件就是一个模块
- .py source code
- .pyc compiled bytecode
- .pyo optimized bytecode
- 一个Python文件就是一个模块
- 包(package)
- 包含多个Pythonwe文件
- _init_.py
- 模块(module)
-
导入已有模块
- 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
- 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,步长为正时,从左向右取值。步长为负时,反向取值
- [start: end:step]
- 对列表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(start,stop,step)
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中很多类型可以表示布尔值
True | False |
---|---|
不为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 else 值2
- 三元表达式示例
'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'}
内容总结
以上是互联网集市为您收集整理的大数据——Python环境搭建及Python数据类型全部内容,希望文章能够帮你解决大数据——Python环境搭建及Python数据类型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。