一、Python基础:
Python简介、环境搭建及包管理
Python简介
- 特点:Python是一门动态、解释型、强类型语言
- 动态:在运行期间才做数据检查(不用提前声明变量)- 静态语音(C/Java):编译时检查数据类型(编码时需要声明变量类型)
- 解释型:在执行程序时,才一条条解释成机器语言给计算机执行(无需编译,速度较慢)- 编译型语言(C/Java):先要将代码编译成二进制可执行文件,再执行
- 强类型:类型安全,变量一旦被指定了数据类型,如果不强制转换,那么永远是这种类型(严谨,避免类型错误,速度较慢)- 弱类型(VBScript/JavaScript): 类型在运行期间会转化,如 js中的 1+"2"="12", 1会由数字转化为string
- 编码原则:优雅、明确、简单
- 优点
- 简单易学
- 开发效率高
- 高级语言
- 可移植、可扩展、可嵌入
- 庞大的三方库
- 缺点
- 速度慢
- 代码不能加密
- 多线程不能充分利用多核cpu(GIL全局解释性锁,同一时刻只能运行一个线程)
- 应用领域
- 自动化测试(UI/接口)
- 自动化运维
- 爬虫
- Web开发(Django/Flask/..)
- 图形GUI开发
- 游戏脚本
- 金融、量化交易
- 数据分析,大数据
- 人工智能、机器学习、NLP、计算机视觉
- 云计算
环境搭建
Windows Python3环境搭建
- 下载Python3.6.5*.exe安装包
- 双击安装,第一个节目选中Add Python3.6.5 to PATH,点击Install Now(默认安装pip),一路下一步
- 验证:打开cmd命令行,输入python,应能进入python shell 并显示为Python 3.6.5版本
包管理
- pip安装
- pip install 包名 - 卸载: pip uninstall 包名
- pip install 下载的whl包.whl
- pip install -r requiements.txt(安装requirements.txt中的所有依赖包)
- pip list 查看已安装的三方包,pip freeze 已文件格式显示已安装的三方包(用于导出requiremnts.txt文件)
- 源码安装
- 下载源码包,解压,进入解压目录
- 打开命令行,执行
python setup.py install
- 验证:进入python shell,输入import 包名,不报错表示安装成功
- 三方包默认安装路径:Python3.6.5/Lib/site-packages/ 下
Python基本语法
- 缩进
if x > 0:
print("正数")
elif x = 0:
print("0")
else:
print("负数")
def add(x,y):
return x+y
- 一行多条语句
x=1; y=2; print(x+y)
- 断行
print("this line is too long, \
so I break it to two lines")
- 注释
# 单行注释
a = 1
'''这是一段
多行注释'''
def add(x, y):
"""加法函数:这是docstring(函数说明)"""
pass
- 变量
- 变量类型(局部变量、全局变量、系统变量)
- 变量赋值
- 多重赋值
x=y=z=1
- 多元赋值
x,y = y,x
- 多重赋值
- 变量自增
x+=1
x-=1
(不支持x++
,x--
)
Python3中没有常量
基本数据类型(6种)
1. 数字Number
- 种类
- 整型int(Python3中没有长整型,int长度几乎没有限制)
- 浮点型float
- 布尔型bool
- False: 0,0.0,'',[],(),{}
- True: 除False以外,['']或[[],[]]不是False
- 复数型complex
- 操作符: +,-,*,/,//(地板除),**(乘方) - Python3中的/是真实除,1/2=0.5
- 类型转
- str(): 其他类型转为字符串, 如
str(12)
- int(): 字符串数字转为整型(字符串不是纯整数会报错), 如
int("12")
- float(): 字符串转换为浮点数,如
float("1.23")
- str(): 其他类型转为字符串, 如
2. 字符串String
- 字符串系统方法
- len(): 计算字符串长度,如
len("abcdefg")
- find()/index(): 查找字符串中某个字符第一次出现的索引(index()方法查找不到会报错), 如
"abcdefg".find("b"); "abcedfgg".index("g")
- lower()/upper(): 将字符串转换为全小写/大写,如
"AbcdeF".lower();"abcedF".upper()
- isdigit()/isalpha()/isalnum(): 判断字符串是否纯数字/纯字母/纯数字字母组合, 如
isdigit("123")
,结果为 True - count(): 查询字符串中某个元素的数量,如
"aabcabc".count("a")
- join(): 将列表元素按字符串连接,如
"".join(["a","b","c"])
会按空字符连接列表元素,得到"abc" - replace(): 替换字符串中的某已部分,如
"hello,java".replace("java", "python")
,将java 替换为 python - split(): 和join相反,将字符串按分隔符分割成列表, 如
"a,b,c,d".split(",")
得到["a", "b", "c", "d"] - strip()/lstrip()/rstrip(): 去掉字符串左右/左边/右边的无意字符(包括空格,换行等非显示字符),如
" this has blanks \n".strip()
得到"this has balnks"
- len(): 计算字符串长度,如
- 字符串格式化
- %: 如
"Name: %s, Age: %d" % ("Lily", 12)
或"Name: %(name)s, Age: %(age)d" % {"name": "Lily", "age": 12}
- format: 如
"Name: {}, Age: {}".format("Lily", 12)
或"Name: {name}, Age: {age}".format(name="Lily",age=12)
- substitude(不完全替换会报错)/safe_substitude: 如
"Name: ${name}, Age: ${age}".safe_substitude(name="Lily",age=12)
- %: 如
- 案例: 利用format生成自定义html报告
tpl='''<html>
<head><title>{title}</title></head>
<body>
<h1>{title}</h1>
<table border=1px>
<tr>
<th>序号</th>
<th>用例</th>
<th>结果</th>
</tr>
{trs}
</table>
</body>
</html>
'''
tr='''<tr><td>{sn}</td>
<td>{case_name}</td>
<td>{result}</td>
'''
title="自动化测试报告"
case_results = [("1", "test_add_normal", "PASS"),("2", "test_add_negative", "PASS"), ("3", "test_add_float", "FAIL")]
trs=''
for case_result in case_results:
tr_format = tr.format(sn=case_result[0], case_name=case_result[1], result=case_result[2])
trs += tr_format
html = tpl.format(title=title, trs=trs)
f = open("report.html", "w")
f.write(html)
f.close()
结果预览
自动化测试报告
序号 | 用例 | 结果 |
---|---|---|
1 | test_add_normal | PASS |
2 | test_add_negative | PASS |
3 | test_add_float | FAIL |
3. 列表List
列表元素支持各种对象的混合,支持嵌套各种对象,如
["a", 1, {"b": 3}, [1,2,3]]
- 列表操作
- 赋值:
l = [1, "hello", ("a", "b")]
- 获取:
a = l[0] # 通过索引获取
- 增:
l.append("c");l.extend(["d","e"]);l+["f"]
- 删:
l.pop() # 按索引删除,无参数默认删除最后一个;l.remove("c") # 按元素删除
- 改:
l[1]="HELLO" # 通过索引修改
- 查: 遍历
for i in l: print(i)
- 赋值:
- 列表系统方法
- append()/insert()/extend(): 添加/插入/扩展(连接)
- index(): 获取元素索引
- count(): 统计元素个数
- pop()/remove(): 按索引/元素删除
- sort()/reverse(): 排序/反转
- 案例: 字符串反转
s="abcdefg"; r=''.join(reversed(a))
4. 元组Tuple
- 不可改变,常用作函数参数(安全性好)
- 同样支持混合元素以及嵌套
- 只有一个元素时,必须加","号,如
a=("hello",)
- 因为Python中()还有分组的含义,不加","会识别为字符串
最后,如果你对Python感兴趣,想要学习Python,希望可以帮到你,一起加油!以上是给大家分享的Python全套学习资料,都是我自己学习时整理的:
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
四、入门学习视频全套
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
**学习资源已打包,需要的小伙伴可以戳这里:【学习资料】