概述
作为ABC语言的一种继承,Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。
优点
近两年来使用python很多,特别是辅助项目开发,是极其便利的工具。
而且通用性好,适用于不同技术类型的项目,几乎没有移植成本。我目前使用的python3+版本。
python是一门弱类型动态语言,一切皆对象的设计思想,非常灵活。
缺点
在书写排版上,不能快速格式化,因为这里的换行和缩进都有具体语义。
另外效率的问题这里不做表述。
书写风格
- 直接写流程
- 构造函数的形式
- 构造类的形式
不需要因此背负思想负担,根据实际需要来即可(和提前优化是编程大忌一个道理,采取付出成本和收益应该最大经济性的原则)
环境搭建
有两个不兼容的版本
python2.7(python2.7最2.x的最后一个大版本,并且不会再对2.7增加新特性,官方也建议转到3.x版本)和python3.+。造成这种高版本不兼容低版本的现状,自然官方的出发点是不想3.+版本背负历史包袱,带来持续性的心智负担,这种事情越早做越好,我在开发新项目的时候也是这种思路。
脚本的执行方式
1 我使用vscode作为编辑器,运行异常方便(如截图,点击指示处即可切换版本)。
2 通过修改环境变量等其他方式可以参考:在Windows上轻松切换不同版本Python https://www.litefeel.com/switch-python-version-on-windows/。
插件
右键菜单插件:ms-python.python 直接在商店中搜索 python即可。
基础语法
基元数据类型
print(type(3)) print(type(3.0)) print(type(range(10))) print(type('3.14')) print(type(True)) print(type([1,2,3])) print(type({'a':1,'b':2,'c':3})) print(type((1,2,3))) print(type({1,2,3})) # 运行结果 # class 'int' # class 'float' # class 'range' # class 'str' # class 'bool' # class 'list' # class 'dict' # class 'tuple' # class 'set'
模块(导入标准库和第三方库)
import os
函数
内建函数(如 abs、len 等)
标准库中的函数(如 math.sqrt、string.split 等)
自定义函数 def main():
PS:说到函数,对其在工程中的应用,阐述一点观点
在数学中:函数是一种映射,其功能是将自变量的值(输入)映射到一个函数值(输出)。
在编程语言中:函数是最重要的语言构造之一,函数是一段程序代码,其功能是根据输入(参数)进行计算,并产生输出(返 回值)。
函数是一种常见的子程序构造,是模块化编程的基本工具。
在面向对象编程中:函数参数尽可能的少(减少复杂度,数据统一管理)。
在函数式编程中:则函数引用外部变量尽可能少(减少副作用)。
执行入口
if __name__ == '__main__': main()
配置文件路径
fullPath = '.\\Assets\\Script\\DT\\ConfigAssetPath.cs'
目录操作
判断目录
if not os.path.exists(foldername):
创建目录
os.makedirs(foldername)
读取文本行
src = open(fullPath
, encoding=’utf-8′) src.readlines():
写文件
dst = open(file=outFile, mode='w', encoding='utf-8') dst.write('public static class ConfigAssetPath {\n') dst.close()
修改文件名
os.rename(filename, resHackName)
遍历
遍历当前目录path下的 文件files 和子目录dirs
for (path,dirs,files) in os.walk(findPath):
遍历集合,数组
for line in lines: print(line)
判断
真值类型
if A is B if A is not B
数值类型
if A == B if A!= B
集合类型
if A in B if A not in B
字符串操作
PS:常用的字符串操作就不说了,主要说些有语法区别的
获取索引头,和字符长度
startIndex = path.index(resRootDir) + len(resRootDir) + 1 #1是指紧挨着的
去掉空格
file.replace(' ', '')
截取字符串
new_name = name[20: 30] + name[-4:]
排版修饰符
\n 换行
\t 制表
注释
单行注释: #被注释内容
多行注释: “””被注释内容””” 或者 ”’被注释内容”’
总结
常见的,比如还有字符编码的问题,目录的更多操作等等,就不多加篇幅了,细节问题都不是问题,最重要的是理解了‘套路’,知道怎么’使用‘其开展工作。
一些应用场景
- 目录操作:如创建,拷贝,剪切,复制,删除
- 文件操作:如修改内容
- 图形文件处理:如修改rbga值
- 作为持续集成工具的嵌入式脚本
- 检测网页元素状态变化
- 定时调用网络接口
等等。部分可浏览:https://github.com/loywong/Batcher-Python