python学习笔记(12)--程序设计方法学
计算思维:
逻辑思维:推演和演绎
实证思维:实验和验证,引力波->实验
计算思维:设计和构造,计算机为代表,汉诺塔递归。
计算思维特征 抽象和自动化,抽象问题的计算过程,利用计算机自动化求解。
计算生态的运用:
编程的起点不是算法而是系统,编程如同搭积木,利用计算生态为主要模式,编程的目标是快速解决问题。需要理解和运用计算生态,站在巨人的肩膀上。
基本程序设计模式:
IPO,自顶向下,模块设计(分而治之,松紧耦合),配置化设计(引擎配置,程序执行与配置分开)
应用开发的四个步骤:
产品定义->系统架构(关注数据流,模块化,体系架构)->设计与实现->用户体验与设计(进度展示、异常处理)
Python社区PyPi
https://pypi.org/
1、在网站搜索关键字,如blockchain;
2、挑选是适合自己开发目标的第三方库作为基础;
3、完成自己需要的功能;
安装方法:
1、pip安装
pip download <第三方库>,下载不安装
pip show <库名>
pip search <库名> pip search blockchain
pip list列出已经安装的python库
pip依赖于网络环境
2、集成安装方法:
Anacoda https://www.anaconda.com/
支持近800个第三方库,包含多个主流工具,适合数据计算领域开发。如果从事的是数据计算领域,下载anacoda,将会提升开发效率。
3、文件安装方法:
有些需要在本地安装才可以使用,使用pip如果可以下载,但是没有编译环境,安装会失败,可以查找UCI页面,这里提供了一些可以下载但需要编译的第三方库软件的已经编译好的版本.
https://www.lfd.uci.edu/~gohlke/pythonlibs/
下载对应的操作系统版本的软件包,然后pip install就可以安装了。
OS库的使用:
OS库的路径操作:os.path import os.path as op
os.path.abspath(path) 返回path在当前系统中的绝对路径
os.path.normpath 归一化path的表示形式统一用\\分隔路径
os.path.relpath relative path 返回当前程序与文件之间的相对路径。
os.path.dirname(path) 返回path中的目录名称;
os.path.basename(path) 返回path中最后的文件名称;
os.path.join(path,"paths") 组合path与paths,返回一个路径字符串;
os.path.exists(path) 判断path对应文件或目录是否存在,返回True或False;
os.path.isfile(path) 判断path所对应的是否为已存在的文件,返回True或False;
os.path.isdir(path) 判断path所对应的是否为已存在的目录,返回True或False;
os.path.getatime(path) 返回path对应文件或目录的上一次访问时间
os.path.getmtime(path) 返回最近的一次修改时间
os.path.getctime(path) 返回创建时间
os.path.getsize(path) 返回path对应文件的大小
os进程管理 使用os.system("")
os环境参数
os.chdir(path) 修改当前程序操作的路径
os.getcwd() 获得当前程序的路径
os.getlogin() 获得当前系统的登陆名
os.cpu_count() 返回当前系统cpu的数量
os.urandom(n) 获得n个字节长度的随机字符串
第三方库自动安装脚本
NumPy:N维数据表示和运算
Matplotlib:二维数据可视化
PIL;图像处理库
Scikit-Learn:机器学习和数据挖掘
Requests:HTTP协议访问及网络爬虫
jieba:中文分词
WeRoBot:微信机器人开发框架
pyGame:简单小游戏开发框架
最新文章
- iOS中常见 Crash 及解决方案
- linux oracle profile配置
- VB将PDF流写入ACCESS数据库,通过AcroPDF控件读出PDF流之实现
- sed和awk最佳入门教程
- u-boot Makefile Source Test
- python linecache标准库基础学习
- 观点:哪些人适合做FPGA开发?(转)
- Java字节流和字符流
- 设计模式之组合模式——Java语言描述
- Nginx 完全配置
- 弄懂JDK、JRE和JVM到底是什么
- java35
- 第65节:Java后端的学习之Spring基础
- HW2017笔试编程题
- s5-10 路由
- csp公共钥匙盒
- Android -- ImageLoader简析
- 【AtCoder】ARC086 E - Smuggling Marbles
- AX5511 Boost Converter
- svn使用经验---不断总结
热门文章
- Unicode与UTF-8关系
- 详解Transformer模型(Atention is all you need)
- P2360 地下城主(BFS)
- go struct{}的几种特殊用法
- mysql安装-CentOS6下解压安装mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
- 环境变量配置的作用和区别:Path、Classpath、JAVA_HOME
- mongo索引命令
- 面试笔记--Fast-Fail(快速失败)机制
- python--迭代器(Iterator)
- 朱晔的互联网架构实践心得S1E2:屡试不爽的架构三马车