Python + 大数据-Python 学习(一)
1. Python 概述
Python是一种跨平台的计算机程序设计语⾔。 是一个高层次的结合了解释性、编译性、互动性和面向对象的语⾔。最初被设计用于编写⾃动化脚本Shell(适用于Linux操作系统),随着版本的不断更新和语言新功能的添加,逐渐被⽤于独立的、大型项目的开发。
其实⽬前很多知名的机器学习、⼈⼯智能以及深度学习框架也都是基于Python语⾔进⾏开发的:
Google开源机器学习框架:TensorFlow
开源社区主推学习框架:Scikit-learn
百度开源深度学习框架:Paddle
1.1 Python版本对比
差异点 | Python2 | Python3 |
输出方式 | 用print关键字,如print “hello” | 用print()函数,如print(“hello”) |
输入方式 | 用raw_input()函数 | 用input()函数 |
字符串编码格式 | 默认采用ASCII | 默认使用Unicode |
格式化字符串方式 | 用%百分号,如”Hello, %s” % (“World”) | 用format()函数,如”Hello, {}”.format(“World”) |
源文件的编码格式 | 默认采用 ASCII ,因此使用中文时要在源文件开头加上一行# --coding: utf-8 - - | 默认采用utf-8 |
1.2 Python在大数据领域运用
大数据更像是一个大的技术生态,从最底层数据采集、数据存储与冗余备份,数据处理,数据分析,数据建模,可视化以及机器学习,深度学习等等一系列。构成大数据体系。而PYTHON在上诉的每一个方面都有不同应用。
1.数据采集领域: python 的优越性体现在python 背后有很多强大的爬虫框架支持,可以更加高效快速爬取数据。最后一点,爬虫有法律风险。
2.数据处理领域:不管是数据的格式转换还是数据科学计算,PYTHON 表项无比优秀,PYTHON 有很多这类框架就是做这种处理,Pandas,Numpy等等。
3.数据分析及数据可视化领域: Pandas, seaborn, pyecharts等可视化框架的出现,让Python在数据数据分析及数据可视化领域也起这举足轻重的作用。
4.实时计算:传统的spark框架和新兴的flink框架都添加了PythonAPI,使Python在实时计算领域的地位也水涨船高。
5.数据建模领域:机器学习的很多框架也是PYTHON 编写,比如sklearn,深度学习领域的明星框架tensorflow 也是由Python编写。通过python 进行机器学习,深度学习高效,方便。
2. Python 解析器
下载地址:https://www.python.org/downloads/release/python-379/
[单击上述链接] -- 查找⽬目标⽂文件:Windows x86-64 executable installer -- 单
击即可下载
2.1 修改解释器
3.Python 注释
单行注释
# 注释内容
多行注释
"""
第一行注释
第二行注释
第三行注释
"""
'''
第一行注释
第二行注释
第三行注释
'''
Ctrl + /`来快速生成代码注释
4. Python变量
4.1 引入变量
① 变量是存储数据的容器
② 变量在程序运行过程中是可以发生改变的量
③ 变量存储的数据是临时的
4.2 变量的作用
4.3 变量的定义
- 定义:变量名 = 值
- 调用:函数(变量名) 或者 使用变量名进行运算 变量名1 + 变量名2
- 变量必须先定义后调用
=等号两边都要保留一个空格 !变量名可以自定义,但是要满⾜`标识符`命名规则。
命名习惯
① 变量命名一定要做到见名知义。
② 大驼峰:即每个单词首字母都大写,例如: MyName 。
③ 小驼峰:第二个(含)以后的单词首字母大写,例例如: myName 。
④ 下划线:例如: my_name
python 内置关键字
4.4 变量数据类型
# 数据类型查看的函数 type(数据/变量名)
# 基础数据类型:int float bool
# 容器类型: str list tuple set dict
# 代码格式化的快捷键:ctrl + alt + L
5. debug
Debug工具使⽤二步走:① 打断点 ② Debug调试
☆ 断点位置
断点要定位在要调试Python代码段的第一行即可
☆ 打断点的方法
在需要调试代码行的行号位置右侧的空白处单击即可
断点打好后,在文件内部任意位置 -- 右键 -- Debug文件名 -- 即可调出Debug工具面板 -- 单击StepOver/F8,即可按步执⾏代码。
右键debug进入调试模式,代码执行暂停到断点位置代码执行之前
debugger :查看参数及变量在执行过程中的变化情况
console:查看控制台输出内容
step over:单步执行代码
resume :执行到下一次断点位置或者程序结束
stop:让程序终止
6. 格式化输出
格式符号 | 转换 |
%s | 字符串 |
%d | 有符号的十进制整数 |
%f | 浮点数 |
%c | 字符 |
%u | 无符号十进制整数 |
%o | 八进制整数 |
%x | 十六进制整数(小写ox) |
%X | 十六进制整数(大写OX) |
%e | 科学计数法(小写’e’) |
%E | 科学计数法(大写’E’) |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
\n :换⾏符。
\t :制表符,一个tab键(4个空格)的距离
%%:在字符串格式化拼接时输出%
- 单占位符:'要书写的内容,占位符' % 变量名
- 多占位符: '要书写的内容,占位符1, 占位符2, 。。。。' % (变量1, 变量2,。。。。)
- %之前的占位符数量要和%之后的变量数量相匹配,一一对应否则会报错
7. Python 输入 -input
input('提示信息')
当程序执行到`input`,等待用户输入,输入完成之后才能继续向下执行。
在Python中,`input`接收用户输入后,一般存储到变量,方便使用。
在Python中,`input`会把接收到的任意用户输入的数据都当做字符串处理。
7.1 f-string
f-string是Python3.6之后出现的格式化语法
- 格式:f'要输出的字符串{要拼接的变量}'
- f可以是大写,也可以是小写,
- 引号可以是单引号,也可以是双引号
- 精度控制
- {浮点型变量:.nf} 保留n位小数,四舍五入
- {整型变量:0nd} 保留n位,不足位用0补齐,如果超出则原样显示
- %可以单独输出
在写复杂的字符串的时候,外层使用的符合不能在内层也使用
f-string不能使用嵌套式格式化(不能用大括号嵌套大括号的形式)
8.数据类型转换
函数 | 说明 |
int(x [,base ]) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
complex(real [,imag ]) | 创建一个复数,real为实部,imag为虚部 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
chr(x) | 将一个整数转换为一个Unicode字符 |
ord(x) | 将一个字符转换为它的ASCII整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
bin(x) | 将一个整数转换为一个二进制字符串 |
- 数据类型转换总结
数据类型转换是为了不同类型数据之间可以进行拼接或运算
格式:数据类型(要转化类型的变量或值)
int和float类型直接可以随意转换
float转换为int类型只保留整数部分
int转换为float类型在末尾添加。0
如果数值型转换为str类型,可以随意转换
- 如果str类型转换为数值型
- float 必须保证str引号内部是浮点型数据或整型数据
- int 必须保证str引号内部是整型数据
9. 运算符的使用
9.1 算数运算符
+ - * / // % **
//
取商%
取余**
幂次运算
算数运算符优先级可以使用小括号控制, 先乘除后加减,同级运算从左至右依次运算
- 结论算数运算符优先级: + - < * / // % < **
- 如果忘记了也没关系使用()提高运算符优先级即可
9.2赋值符号
= :将等号右侧的值赋值给等号左侧的变量
可以给单个变量赋值: 变量= 值
可以给多个变量赋不同的值 : 变量1, 变量2. 变量3 = 值1, 值2, 值3
可以给多个变量赋相同的值:变量1 = 变量2 = 变量3 = 值
9.2.1复合赋值运算符
- 复合赋值运算符等号左侧一定是已经被定义的变量
- 复合赋值运算符右侧是已经被定义的变量或者值
9.2.2比较运算符
`< > <= >= == !=`
比较运算就是比较数据值的大小
比较运算可以连续使用
比较运算中比较相等使用== 而 不能使用 = (赋值运算符)
9.2.3逻辑运算符
- and 同真即真
- or 同假即假
- not 真变假 假变真
9.2.4 短路运算
Python把0、空字符串”和None看成 False,其他数值和非空字符串都看成 True,
当逻辑运算的第一个表达式已经可以决定整个逻辑运算的值的时候,后边的表达式将不会被运
例如: