Python学习笔记

概述

作为ABC语言的一种继承,Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。

优点
近两年来使用python很多,特别是辅助项目开发,是极其便利的工具。
而且通用性好,适用于不同技术类型的项目,几乎没有移植成本。我目前使用的python3+版本。
python是一门弱类型动态语言,一切皆对象的设计思想,非常灵活。

缺点
在书写排版上,不能快速格式化,因为这里的换行和缩进都有具体语义。
另外效率的问题这里不做表述。

书写风格

  1. 直接写流程
  2. 构造函数的形式
  3. 构造类的形式

不需要因此背负思想负担,根据实际需要来即可(和提前优化是编程大忌一个道理,采取付出成本和收益应该最大经济性的原则)

环境搭建

有两个不兼容的版本
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

apoteketreceptfritt.com

, 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

进阶参考