Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
python首先是一门脚本语言,是一种弱类型语言,ta的用途极为广泛,主要应用于web编程(主流框架为flask,django),爬虫
• 数据分析与数据挖掘(Numpy、pandas等)
• 也可用来编写服务器,数据库备份脚本等
• 用来编写漏洞分析exp(利用脚本)
python优点
• 简洁、优雅、灵活
• 入门非常简单,但真正精通较为困难
• python可以编写服务器脚本,也可以编写常规网站
python缺点
• 运行效率慢(相对于c,java)
• 编译型语言(C、C++)
• 执行前必须先进行编译,编译成底层机器码
• 解释型语言 (python,javascript)不用编译,每次执行都需要解析源代码
python应用场景
• 爬虫
• 大数据与数据分析(spark)
• 自动化运维与测试
• web框架(flask,django)
• 机器学习(tensorflow)
第一个python程序
在控制台上输出“hello world”
- 在终端中直接写出对应的代码
“>>>”进入python终端
Print(“hello world!”)
弊端:代码保存一旦退出命令窗口,则数据丢失,不适合写长代码
注意:终端中写的代码无法保存(直接),因此主要用来测试代码和调试代码
(2)创建一个. Py文件.[一个模块文件]
右键,创建一个文本文档
需要放开系统的后缀名的管理
将文本文件后缀名改为.py将文件拖入Pycham
输入print("hello,world")
保存拖入cmd命令框
编码问题
Python 2默认采用ASCII编码,所以默认不支持中文
python 3默认采用Utf-8S编码(任何语言都支持,把中文放在第三个字节)
注释
(1)单行注释:#注释
(2)多行注释:使用多个单行,选释模拟单行运程
“““ ”””三引号多行注释可以换行
☆注意:python中,单引号和双引号是一个意思
(3)中文注释/编码注释
#Coding:utf-8/#coding=utf-8
(4)平台注释/解释器注释
python在linux下 #!/user/bīn/python(指定python的解释器)
python的变量:
什么是变量:在程序运行时(代码从第一行开始执行到最后一行结束的这段时刻内)可以变化的量可以称为变量.
☆在Python中,没有定义常量的方式所以Python使用变量替代
内存角度:具有名称的内存空间
为什么要使用变量:灵活性提升
python如何定义变量:
强数据类型的编程语言(Java、C、C++、C#)
在定义变量时存储的数据类型一定要确定下来
例:int age=10;String name="Bob";
弱数据类型的编程语言(PHP,python,JauaScript. ruby)变量类型不固定,类型会自动识别
变量名称=值
例:age=18
标识符(变量)的命名规范问题
(1)变量的名称组成部分只能由大小写字母、数字、下划线_)这三种符号中的一种式多种组成
(2)变量名称不能以数字开头
(3)不能以关键字或保留字做为变量
python中不同版本的关键字或保留字不一致
可以用import keyword
keyword.kwlist查询
(4)变量名尽量有意义
(5)如果多个单词参与命名,建议使用下划线或者驼峰法
数据类型
基本数据类型:数值型:整数型(int)浮点数(float)复数(虚数)
布尔类型:真:True假False(首字母大写,特殊符号)
字符串(str)
复合数据类型:
list
set
dict
Tuple
Python数据类型
• 分为两类:不可变数据(number,string, tuple)可变数据(list,dictionary,set)
• 整数、小数都属于数字(number)
• 整数(int)、小数用(float)
• python中并无单双精度,python中float默认双精度
• 其他语言整数分为:short、int、long
python中的序列
• str、list、tuple 都是一种序列
• 何为序列,即有顺序的列表
• 'abc'[1] == 'b' 字符串'abc'是有顺序的,有编号的,我们通
过编号获取我们想要的字符
• 切片操作[a:b]、['aaaddsadas'][0:3]Python切片详解
• Python可切片对象的索引方式
• 包括:正索引和负索引两部分
• 一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、 step)。当只有一个“:”时,默认第三个参数step=1;当一个“:”也没start_index=end_index,表示切取start_index指定的那个元素。
• 切片操作基本表达式:object[start_index:end_index:step]
• step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了 “切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时, 默认为1,即从左往右以步长1取值
• start_index:表示起始索引(包含该索引对应值);该参数省略时,表示从对象“端点” 开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为 正从“起点”开始,为负从“终点”开始。
• end_index:表示终止索引(不包含该索引对应值);该参数省略时,表示一直取到数据“端点”,至于是到“起点”还是到“终点”,同样由step参数 的正负决定,step为正时直到“终点”,为负时直到“起点”。
数据类型的转换:
int(字符串) #将审算转换为整数
float(字符串) #将字符串转换为浮点数
str(数值) #将其他类型转换为字符串
整数和小数运算,会自动向高精度转换
如果布尔类型和数值型进行运算,布尔类型会自动转换为数值
true:转换为数据1 False:转换为数字0
字符串的格式化输出:
python提供了很多种字符串格式化输出的方式
- 通过%S占位,%d,%f(.n%+保留n位小数,同时四舍五入)
- 将其它类型全部转化为字符串统一输出,通过+拼接
- {}占位输出例:print(“{ }+{ }={}”. format(ab)) Print(f“{a}+{b}={a+b}”)
- 通过“,”(逗号显示变量)单个变量可使用
常见运算符
①算术运算符②关系(比较)运算符③逻辑运算符
④赋值运算符⑤三目运算符 ⑥位运算符.
1.算术运算符
+ #加法
- #减法
* #乘法 例:10÷3=333333333335 结果为小数而非整数并除
% #(求模.求余)判断是否整除
^ # 幂次方
// #地板除法/整除
2、关系(比较运算符)
> #大于
!= #不等于 注意:关系运算符的结果为布尔值
>= #大于等于 例a=10 b=3
<= #小于等于
== #等于千万不要用“=”赋值
3、逻辑运算符
and #并且的关系 一假则假
or #或者的关系 一真则真
not #不是,取反的意思
最终结果也为布尔值
所属运算符:判断一个值是否存在于某个复合数据类型(容器)
4、赋值运算符(优先级别很低)
=
+=
-=
*=
//=
/=
**=
%=
python中没有自加和自减运算符,请使用+= ,-=替代!!!
5、三目运算符:
C. java:变量=表达式?结果1:结果2 (if/else的简写)
python中:变量=结果1 if表达式else结果2
6、位运算符
& #与运算符(二进制位皆为真时即为真)
参与运算的两个值,如果两个对应位 则该位的结果为1,否则为0.
规律:①所有偶数与1都为0
②所有奇数与1最后1位都为1
| #或运算符(一者为真则为真,只要对应的二个二进位有一个为1时,结果为1)
^ #异或运算符(相反为真)当两对应的二进位相异时,结果为1
异或运算的一些规律:①两个相同的数,做异或,结果为0
②任何数与0异或,结果不会,发生变化
~ #按位取反符
<< #左移运算符
>> #右移运算符
程序控制流程
顺序结构
选择结构
循环结构
顺序:代码都是从左到右,自上而下执行的
选择结构:单分支:if条件(最终返回布尔值):
#条件成立,执行缩进的代码
双分支:if condition:
#条件成立,执行缩进的代码
else:
#条件不成立,执行else中的代码
(三)多分支:if 条件1:
#条件1成立,则执行缩进的代码
elif 条件2:
#条件2成立,则执行缩进的代码
……
elif 条件n:
#条件n成立,执行缩进的代码
[else:
#剩余条件
]
循环结构(重复,周而复始)
While循环:
语法结构:
While condition:
#循环体
#循环体
break和continue关键字
break关键字:终止当前循环
continue关键字:跳过本次循环,进入下次循环(看条件)
While条件:
#循环体
for 循环,常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。
for 变量 in 序列:
循环要执行的动作
for循环用来遍历整个列表#for循环主要用来遍历、循环、序列、集合、字典