应用场景
python诞生于1989年,以极简和他强大的类库著称。
旨在打造极简的、易上手的编程环境,使更多的人能够从事编程工作。
运维:
由于python的极简性其最初被用于运维领域
大数据:
随着移动互联网的发展,导致大数据技术的出现。与此同时,由于python有强大的数据提取、分析类库,加之大数据对数据提取、分析的需求,python逐渐被应用于大数据领域
人工智能:
随着人工智能的发展,各大互联网公司都在向人工智能领域发起进攻。但各大公司所采用的研究语言又不统一,这便阻碍了人工智能技术的发展速度。这时,各大公司又看中了python的简洁性、强大的类库、与各种语言的粘合性。于是各大公司便逐步将python用于人工智能领域的官方语言
Web开发:
由于基于python开发的web框架简便而灵活,加之python与各种语言都有很好的粘合性,故而很多Web人员都逐渐倾向于使用python做Web开发,至此,python在各大领域,各大行业都受到了广泛的欢迎
环境配置
运行环境
cpython编译器,可在官网(https://www.python.org)进行下载
下载好python编译器后,进行常规的安装即可(注意勾选添加系统path选项,建议更改安装目录(安装目录不能存在特殊符号及中文))
测试:
打开cmd,键入python查看是否进入python交互界面。
若为进入交互界面则可以使用一下方法进行排除:
1.查看安装目录下是否存在python.exe程序。
若不存在,则表示安装失败,重新执行安装操作即可
2.若存在python.exe程序,则错误原因为未添加系统path路径
右击我的电脑->属性->高级设置->环境变量。在系统环境变量下的path中添加python主目录和主目录\scripts即可解决问题(需要重新打开cmd进行测试)
开发环境
- sublime、vscode、vim、notepad++、EditPLus、atom、Pycharm等
Pycharm存在三个版本:教育版、社区版、专业版
教育版:
- 基于社区版进行开发,其功能较社区版多,此版本主要用于高校教学工作。
社区版:
- 是对专业版进行阉割的产品,不具备大型的(Web开发等)工程开发能力,但社区版是免费产品。
专业版:
- 支持所有的python开发,但收费(网上有破解教程,但过于繁琐,破解后的有效期有限,需要经常破解。若有学生邮箱,可以通过官网使用学生邮箱申请免费试用(有效期约一年左右,到期后需重新申请))
简单代码
又是一版hello world:
printf(“hello world!”)
- 这是python中的标准输出函数,此行代码充分体现了python的简洁性,在python中,不强制使用main函数。
编译程序:
- 可以通过cmd键入python后使用python交互式界面进行交互式编译
- 可以创建后缀名为.py的文件,打开文件后编写相应的代码完成后保存。在cmd中切换到存放文件的目录下(cd),键入“python 文件名.py”命令对程序文件进行编译(注意后缀、python与文件名之间的空格)
编码问题:
python3中的字符串是以unicade进行编码的,故python3可以支持各种语言。
通过encode()函数可以实现指定编码方式
变量
python是弱数据类型语言,他在定义变量时,不用声明变量类型(编译器会自动根据其值判断其数据类型)
定义方法:
变量名=变量值(a=10)、变量名(a)
变量命名规范:
变量名称只能由(大小写英文字母、数字、有效符号)组成,且不能以数字开头、不能为关键字或保留字。变量名应能够表示其代表数据的意义(推荐使用下划线“_”对单词进行合理划分)
python中的关键字:
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue','def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
python中的变量类型:
基本数据类型: |
---|
数值型 |
布尔型(True、False) |
字符串型(string)(被单引号、双引号、三引号括起来) |
None空类型 |
引用数据类型:
list、set、dict、tuple、object
变量类型可以通过函数进行强制转换:
函数 | 作用 |
---|---|
int() | 转换为int型(只有float型和纯数字的str型才可以转换) |
float() | 转换为float型(只有int型和纯数字的str型才可以转换) |
str() | 转换为str型(任何类型都可以转换为str型) |
几个全局函数:
函数 | 作用 |
---|---|
printf(“字符串”) | 输出字符串,标准输出函数 |
input(“字符串提示”) | 标准输入函数 |
type(变量) | 判断变量的数据类型 |
注释
python中采用“#”进行单行注释,当然可以通过多行键入“#”实现多行注释,但这样做是十分繁琐的。我们可以采用键入三个引号(单引号或双引号)实现多行注释(引号必须成对存在)例:‘‘‘ ’’’、“““ ”””
运算符
算数运算符 | 含义 | 示例 |
---|---|---|
+ | 加运算 | c=a+b(c=5+6=11) |
- | 减运算 | c=a-b(c=5-6=-1) |
* | 乘运算 | c=ab(c=56=30) |
/ | 除运算 | c=a/b(c=1/4=0.25) |
% | 取余运算 | c=a%b(c=2%3=1) |
// | 地板除法 | c=a//b(c=1//4=0) |
** | 幂运算 | c=a*b(c=2**2=4) |
关系运算符 | 含义 |
---|---|
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
== | 等于 |
!= | 不等于 |
关系运算符的结果都为布尔型
逻辑运算符 | 操作 | 含义 |
---|---|---|
and | 与 | 一假则假,全真为真 |
or | 或 | 以真则真,全假为假 |
no | 非 | 取反,真为假,假为真 |
成员运算符 | 含义 |
---|---|
in | 判断是否容器中是否存在此元素 |
not in | 判断是否容器中是否不存在此元素 |
赋值运算符 | 含义 | 示例 |
---|---|---|
= | 向左赋值 | c=a(a=5,c=5) |
+= | 左值与右值相加后向左赋值 | c+=a(c=c+a) |
-= | 左值与右值相减后向左赋值 | c-=a(c=c-a) |
*= | 左值与右值相乘后向左赋值 | c*=a(c=c*a) |
/= | 左值与右值相除后向左赋值 | c/=a(c=c/a) |
%= | 左值与右值取余后向左赋值 | c%=a(c=c%a) |
//= | 左值与右值执行地板除法后向左赋值 | c//=a(c=c//a) |
**= | 左值与右值运行幂运算后向左赋值 | c**=a(c=c**a) |
python中没有自加自减运算符,自加自减需要通过赋值运算符来实现
位:(bit)一个二进制
字节:(B)八个二进制。无符号时,一字节范围0-255;有符号时,一字节范围-127-127
位运算 | 方法 |
---|---|
源码 | 将十进制数转化为二进制数 |
反码 | 正数反码与源码相同,负数反码对源码取反(符号位不变) |
补码 | 正数补码与反码相同,负数补码对反码+1(符号位不变) |
与(&) | 同1则1,一0则0 |
或(|) | 同0则0,一1则1 |
异或(^) | 不同则1,相同则0 |
左移运算(<<) | 按位左移,末尾补0,位移量大于32则取余后位移 |
右移运算(>>) | 按位右移,低位社区,高位补0 |
在JAVA、C、C++中,存在有符号和无符号两种右移:
- 无符号右移(>>>)按位右移,低位舍弃,高位补0
- 有符号右移(>>)按位右移,低位舍弃,高位补符号位
三大流程
顺序
- 从上向下,以强制缩进区分模块(一个语句的结束以换行符作为标志)
判断
if 条件:
分支语句
if条件:
分支语句(强制缩进)
else:
分支语句
if 条件:
分支语句
elif:
分支语句
else:
分支语句
循环
while条件:
循环体(强制缩进)
for 控制变量 in 循环条件:
循环体(强制缩进)