python进阶问题
高级概念与包函数式编程包operator
form operator import mul
可以替代
1reduce(lambda a,b:a*b, range(1,1+n))
为
1reduce(mul, range(1,1+n))
itemgetter(1) 可以替代 lambda fields: fields[1]:创建一个接受集合的函数,返回索引位1上的元素
attrgetter与itemgetter类似,它创建的函数根据名称提取对象的属性。如果把多个属性名传给attrgetter,它也会返回提取的值构成的元组。
methodcaller会自行创建函数,创建的函数会在对象上调用参数指定的方法。
123456from operator import methodcallers = 'The time is come'upcase = methodcaller('upper')upcase(s)Out[11]: 'THE TIME IS COME'
模块查找策略
目标:自动查找其他可用的*_promo函数
方式一: ...
python性能优化模块
系统监控模块psutil模块
psutil模块文档
psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU、内存、磁盘、网络等)信息。它主要用来做系统监控,性能分析,进程管理。它实现了同等命令行工具提供的功能,如ps、top、lsof、netstat、ifconfig、who、df、kill、free、nice、ionice、iostat、iotop、uptime、pidof、tty、taskset、pmap等。
一、 安装psutil
pip install psutil
二、 监控cpu信息
import psutil
psutil.cpu_times() #获取cpu(逻辑cpu的平均)占用时间的详细信息
psutil.cpu_times(percpu=True) #获取每个cpu占用时间的详细信息
psutil.cpt_times().user #获取用户进程占用cpu的时间(user+sys+idle+wait=total)
三、 监控内存信息
impor ...
Anaconda开发环境
Anaconda介绍Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。
套件管理
显示已安装的套件
12conda listpip list
套件安装
1234conda install packages # pip可以安装一些conda安装不了的包pip install packages [-i https://pypi.douban.com/simple] # -i部分临时指定pip源easy_install 参数 packagespython setup.py install # 下载源码,进入到源码路径下
国内的pip源
阿里云 https://mirrors.aliyun.com/pypi/simple/
中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) https://pypi.douban.com/simple/
清华大学 https://pypi.tuna.ts ...
Jupyter_Notebook介绍、安装及使用教程
Jupyter Notebook使用教程
简介Jupyter Notebook是一个开源的Web应用程序,允许用户创建和共享包含代码、方程式、可视化和文本的文档。它的用途包括:数据清理和转换、数值模拟、统计建模、数据可视化、机器学习等等。它具有以下优势:
可选择语言:支持超过40种编程语言,包括Python、R、Julia、Scala等。
分享笔记本:可以使用电子邮件、Dropbox、GitHub和Jupyter Notebook Viewer与他人共享。
交互式输出:代码可以生成丰富的交互式输出,包括HTML、图像、视频、LaTeX等等。
大数据整合:通过Python、R、Scala编程语言使用Apache Spark等大数据框架工具。支持使用pandas、scikit-learn、ggplot2、TensorFlow来探索同一份数据。
Jupyter Notebook是基于网页的用于交互计算的应用程序。
其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。
安装与运行
12conda install jupyter notebookpython -m pip inst ...
elementary_os记录
Elementary os介绍硬盘格式转换在MBR硬盘中,分区信息直接存储于主引导记录(MBR)中(主引导记录中还存储着系统的引导程序)。但在GPT硬盘中,分区表的位置信息储存在GPT头中。但出于兼容性考虑,硬盘的第一个扇区仍然用作MBR,之后才是GPT头。
跟现代的MBR一样,GPT也使用逻辑区块地址(LBA)取代了早期的CHS寻址方式。传统MBR信息存储于LBA 0,GPT头存储于LBA 1,接下来才是分区表本身。64位Windows操作系统使用16,384字节(或32扇区)作为GPT分区表,接下来的LBA 34是硬盘上第一个分区的开始。
GPT是为了支持2TB以上硬盘而发展的。而且GPT的分区信息是在分区中,而不象MBR一样在主引导扇区,为保护GPT 不受MBR类磁盘管理软件的危害,GPT在主引导扇区建立了一个保护分区 (Protective MBR)的MBR分区表,这种分区的类型标识为0xEE,这个保护分区的大小在Windows下为128MB,Mac OS X下为200MB,在Window磁盘管理器里名为GPT保护分区,可让MBR类磁盘管理软件把GPT看成一个未知格式的分区, ...
语法_基础
主要是对考研刘晓艳老师的书籍《不就是语法和长难句吗?》,进行笔记整理和学习
语法基础英汉句法结构差异
英语:讲究结构美,强调语法和句法的完整性和合理性
汉语:讲究意境美,无拘无束,挥洒自如
何谓主谓宾主语:动作的发出者
谓语:动词
宾语:动作的承受者
例子
我们 总是会 忽略 努力的 重要性。
主语 (状语) 谓语 (定语) 宾语
语法总览
名词性从句,按照从句的类型,可以分为四种类型
主语从句
宾语从句
表语从句
同位语从句
定语从句,按照先行词可以分为以下五种类型
人
物
时间
地点
原因
状语从句,根据引导词本身的意思,可以分为以下九种类型
时间状语
地点状语
因果类
原因状语
目的状语
结果状语
条件状语
方式状语
比较状语
让步状语
其他句型可以归纳为以下四种
强调句
倒装句
虚拟语气
插入语
词性_实词名词含义名词就是人或物的名称,如:Alice, dog, book, the Changjiang River
分类
名词可以分为普通名词和专有名词
普通名词
可数
个体名词: 指单个人或物,bo ...
语法_定语和定语从句
定语从句定语的成分定语就是修饰名词(短语)的成分,这与中文一致。
她是一只善良的夜莺。
【解析】”善良的”修饰”夜莺”。
住在年轻人隔壁的那个女孩应该很漂亮。
【解析】”住在年轻人隔壁的”修饰”那个女孩”。
家境贫困的年轻人爱上了教授的女儿。
【解析】”家境贫困的”修饰”年轻人”;”教授的”修饰”女儿”。
其实只要在中文中听到”…的+名词(短语)”,”…的”就是修饰这个名词(短语)的定语成分
能做定语的成分主要包括了以下几种:
形容词(短语)作定语
那只善良的夜莺最后死了。
That kind nightingale died at last.
这朵非凡的玫瑰花变成了深红色。
The extraordinary rose turns dark red.
名词(短语)作定语,此时的名词(短语)已经形容词化了
夜莺的歌声能使这朵玫瑰花开放。
The nightingale’s singing can make the rose bloom.
或 The singing of the nightingale can make the rose bloom.
切记写作 ...
语法_状语与状语从句
引语
形容词(短语)
放在系动词后面作表语,例如:He becomes tough these days.
放在宾语后面作补语(此用法不太常见),例如:The reality makes him tough these days.
放在名词(短语)前面作定语,例如:He has become a tough man these days.
总结我们发现了一个规律,不论形容词(短语)作什么成分,都是围着名词(短语)/代词转,也就是说形容词(短语)无论作什么成分都是修饰名词(短语)/代词的。
Liu is honest. 此时的honest修饰主语Liu。
Liu can make me happy. 此时的happy修饰宾语me。
Liu is an honest woman. 此时的honest修饰woman。
副词(短语)
副词(短语)在本文中还没有提到过,或从未专门提到过,这里就来正式进行讲解。
He smiles sweetly. 副词sweetly修饰实义动词smiles。
He looks pretty sweet. 副词pretty修饰形容词swee ...
JDBC_JDBC基础
【黑马程序员-Java语言高级部分11】JDBC
基础概念
概念:Java DataBase Connectivity Java 数据库连接, Java语言操作数据库
JDBC笔记
JDBC本质:其实是官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。
快速入门步骤:
导入驱动jar包 mysql-connector-java-5.1.37-bin.jar
复制mysql-connector-java-5.1.37-bin.jar到项目的libs目录下
右键—>Add As Library
注册驱动
获取数据库连接对象 Connection
定义sql
获取执行sql语句的对象 Statement
执行sql,接受返回结果
处理结果
释放资源
代码实现
12345678910111213141516>// 1. 导入驱动jar包>// 2.注册驱动>Class.forName(&qu ...
Java进阶_反射
【黑马程序员-Java语言高级部分9.2】Java 反射
反射机制笔记
【狂神说Java】注解和反射
JAVA注解与反射和类的加载机制第十六个专题
反射概念基本概念
框架:半成品软件,可以在框架的基础上进行软件开发,简化编码。
学习框架并不需要了解反射,但是要是想自己写一个框架,那么就要对反射机制有很深入的了解。
反射机制:将类的各个组成部分封装为其他对象,这就是反射机制。
反射的好处:
可以在程序运行过程中,操作这些对象。
可以解耦,提高程序的可扩展性。
假设我们使用的是new这种形式进行对象的实例化。此时如果在项目的某一个小模块中我们的一个实例类丢失了,那么在编译期间就会报错,以导致整个项目无法启动。
对于反射创建对象Class.forName(“全类名”);这种形式,我们在编译期需要的仅仅只是一个字符串(全类名),在编译期不会报错,这样其他的模块就可以正常的运行,而不会因为一个模块的问题导致整个项目崩溃。这就是Spring框架中IOC控制反转的本质。
Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection AP ...