
Python 基础
文章平均质量分 89
BYR_jiandong
这个作者很懒,什么都没留下…
展开
-
Python的 函数 参数为数据结构和表的区别
a = 1def change_integer(a): a = a + 1 return aprint change_integer(a)print a#===(Python中 "#" 后面跟的内容是注释,不执行 )b = [1,2,3]def change_list(b): b[0] = b[0] + 1 return bprint ch原创 2015-05-20 16:27:14 · 757 阅读 · 0 评论 -
Python程序的执行过程 解释型语言和编译型语言
转载地址:http://www.cnblogs.com/kym/archive/2012/05/14/2498728.html1、C++和C都是属于编译型语言,本来的.c文件都是用高级语言编写的,计算机是不能识别高级语言的,所以,必须要通过编译,链接等手段,将.c文件转换成可执行文件,可执行文件就是纯二进制文件,然后计算机才能够执行。 unix>./p:(p是可执行文件)上述命令的转载 2015-11-27 11:30:02 · 12321 阅读 · 1 评论 -
Ubuntu 装python3,但是不要改动系统默认python解释器的版本,源码安装的步骤
从源代码安装Python主要有下面四个步骤:安装库和依赖包我们在编译Python的源码时,需要用到大量的库和依赖包。我们需要编译之前让它们就绪。sudo apt-get install -y build-essential libncursesw5-dev libreadline6-dev \转载 2015-11-27 17:18:15 · 2546 阅读 · 0 评论 -
python脚本的两种调用方式
1、python脚本中经常第一句出现#!/usr/bin/env python或#!/usr/bin/python。这句话的意义下面解释:脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单#!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;#!/usr/bin/env pytho原创 2015-11-27 16:51:41 · 26750 阅读 · 1 评论 -
python3使用了更多内存优化的技巧,比如,python3的zip就是生成可迭代的对象
问题说明:以前在使用zip(a,b)时,a,b都是一个非常大的list。使用python2解释器时,执行zip(a,b)都会提示,内存错误。后来找到了原因,python2的zip(a,b)直接是生成一个新的list,也就是说,把a,b拼在一起,然后全部载入内存。这是非常耗内存的。但是python3已经改变了这种做法,python3生成的是可迭代的对象,并不是直接生成一个完整的list。降低原创 2015-12-30 09:20:08 · 3288 阅读 · 0 评论 -
安装常见python包,出现的问题,及其解决的办法
1、安装pandassudo apt-get install python-pipsudo pip install numpysudo pip install pandas在安装numpy时,会需要安装python-dev,出现如下错误,依赖关系不满足。The following packages have unmet dependencies: python2.7-dev原创 2015-11-27 19:52:34 · 44291 阅读 · 1 评论 -
ubuntu 安装 scikit-learn的注意事项
1、scikit-learn is tested to work underPython 2.6, Python 2.7, and Python 3.4. (using the same codebase thanks to an embedded copy of six).It should also work with Python 3.3.The required原创 2015-11-29 12:51:05 · 2552 阅读 · 0 评论 -
sklearn sparse matrix 的构造方法
1、SciPy中 sparse matrix的格式:2、写入稀疏矩阵,一个元素,一个元素写入。from scipy.sparse import *from scipy import *from numpy import *import csvS = dok_matrix((10000,10000), dtype=bool)f = open("your_file_name")原创 2016-02-14 17:01:15 · 4170 阅读 · 0 评论 -
python 输出中文乱码的解决方案
1、首选必须要去了解,目前几种常用的编码方案。其实编码的本质就是系统中存放了一张表,那张表就是一串二进制数到字符的映射。 说明:ASCII编码适合于英文文档的编码。Unicode编码适合于很多语言的编码。Unicode使用32位来表示字符,要求文本中每个字符占4个字节,比较浪费空间。下面介绍几种常用的编码方式:UTF-8:原创 2016-04-04 17:32:43 · 33531 阅读 · 0 评论 -
pandas contact 之后,一定要记得用reset_index去处理index,不然容易出现莫名的逻辑错误
# -*- coding: utf-8 -*-import pandas as pdimport sysdf1 = pd.DataFrame({ 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', '原创 2016-10-25 23:51:00 · 74368 阅读 · 2 评论 -
python 编码问题总结
1、简而言之,Python 2.x里字符串有两种:str和Unicode前者到后者要decode,后者到前者要encode,'utf-8'为例:str.decode('utf-8') -> Unicodestr 总结:Unicode就像是中间桥梁,utf-8编码,GBK编码都可以decode成unicode编码,而unicode编码可以encode成utf-8。编码其实就分原创 2016-10-28 23:04:05 · 475 阅读 · 0 评论 -
Python Argparse模块的使用例子,往python脚本传参数
直接可套用的代码样例,只需要根据实际需求增加add_argument,添加可选参数和必选参数:import argparse,sysif len(sys.argv) == 1: sys.argv.append("-h")parser = argparse.ArgumentParser()parser.add_argument('-s',dest='nr_thread',def原创 2015-11-19 17:02:26 · 7721 阅读 · 0 评论 -
zip,collections.defaultdict lambda,csv.DictReader用法简介,及subprocess.call注意事项(需要使用chmod将待执行的文件变为可执行)
定义:zip([iterable,...]) zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对象相同。利用*号操作符,可以将list unzip(解压)说明zip的一些使用方法:a =原创 2015-11-16 21:59:08 · 2024 阅读 · 0 评论 -
python 文件输出与重定向 ,输出的内容会在内存中暂存,不会立刻输出到文件中
1、使用write写磁盘文件python 中使用write,将数据写入到文件中,但是并不是write之后,就立刻写入到文件(比如a.txt)中,python的write会先将数据放在内存的缓冲区中,等到积累了一定的量,再一起写入到磁盘文件中。这样可以提高性能,减少访问磁盘的次数。总结一下,在程序中使用write写文件,数据不会立刻写入到文件中,也就是打开文件看不到刚才写入的数据,但是,使用fl原创 2015-11-19 15:13:08 · 10486 阅读 · 0 评论 -
Python 面向对象的基本概念 与c++ 面向对象的基本概念有点区别
Python使用类(class)和对象(object),进行面向对象(object-oriented programming,简称OOP)的编程。面向对象的最主要目的是提高程序的重复使用性。我们这么早切入面向对象编程的原因是,Python的整个概念是基于对象的。了解OOP是进一步学习Python的关键。下面是对面向对象的一种理解,基于分类。相近对象,归为类在人类认知原创 2015-05-20 19:21:54 · 3819 阅读 · 0 评论 -
import sys sys.path.append(...)
模块搜索路径:当我们试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件,如果找不到,就会报错默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中:>>> import sys>>> sys.path['', '/Library/Frameworks/Python.framework/Ver原创 2015-07-30 23:24:20 · 27937 阅读 · 0 评论 -
Scrapy爬虫框架入门
1、强烈推荐的Scrapy框架教程:http://blog.youkuaiyun.com/column/details/younghz-scrapy.html2、框架说明:2.1: 整理框架中,初学者只需要参与的就是Spiders和item Pipeline模块各模块的作用:Spider 模块:解析网页和发送原创 2015-08-20 00:07:52 · 763 阅读 · 0 评论 -
Python 列表的清空
情况列表的操作:del list[:]list=[]list[:]=[]def func(L): L.append(1) print L #L[:]=[] #del L[:] L原创 2015-09-29 17:02:54 · 19992 阅读 · 1 评论 -
Python 动态类型 变量基本上是动态变量
动态类型(dynamic typing)是Python另一个重要的核心概念。我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值。这些都与动态类型的概念相关。 动态类型 在我们接触的对象中,有一类特殊的对象,是用于存储数据的。常见的该类对象包括各种数字,字符串,表,词典。在C语言中,我们称这样一些数据结构为变量。而在Pytho原创 2015-05-21 19:45:02 · 2371 阅读 · 0 评论 -
Python 读Dict数据的方法,解决key 不在dict的问题,get()函数,setdefault()函数
Python读写字典,如果Key不在Dict里面,就会导致抛出KeyError,如果没有做异常处理,那么程序就会挂断,平时自己写来玩耍的程序,挂掉没事,改了再重新跑呗。但是,如果在公司,可能一个程序要跑几天,因为这种小bug挂掉,就要重新跑一遍,非常影响工作效率。所以,读字典时,一定要考虑到Key not in Dict里面的情况,可以选择做异常处理。 temp = {'a':1,'b':1,原创 2015-09-01 21:48:33 · 29521 阅读 · 1 评论 -
Python 迭代器的概念
使用迭代器的理由:1、“流式”数据处理方式减少内存消耗:比如处理文件,一下猛地把全部数据全部取出来放到内存里面进行处理会导致程序消耗大量内存,有时甚至没法做到,一般我们会一部分一部分的对文件内容进行处理:for text_line in open("xx.txt"): print text_lineopen("xx.txt")返回的是可迭代的对象,所以,可以渐进式地对文件的内容进行原创 2015-09-17 12:14:13 · 2365 阅读 · 0 评论 -
函数的默认参数的大坑,参数的可变参数
转自廖雪峰的官网:默认参数很有用,但使用不当,也会掉坑里。默认参数有个最大的坑:在多次调用函数的过程中,默认参数的值可能在不知不觉中改变,这个,跟C++很不一样。演示如下:def add_end(L=[]): L.append('END') return L当你正常调用时,结果似乎不错:>>> add_end([1, 2, 3])[1, 2, 3, 'EN转载 2015-07-30 22:55:46 · 1777 阅读 · 0 评论 -
Python 生成器
生成器 生成器跟迭代器有点类似,是个数据生成器,目的就是为了减少内存的使用。要使用一个数据就生成一个数据,而不是一下子直接把数据加载到内存中,比如,如果有一个4G的文件要处理,直接加载到内存是不现实的。 先谈一下列表生成式:版本1:[x * x for x in range(1, 11)] 版本2:L = []for x in range(1, 11):原创 2015-09-20 09:56:36 · 592 阅读 · 0 评论 -
@property
想要理解@property ,必须先理解装饰器的用法推荐2个讲解装饰器的博文链接:http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.htmlhttp://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431843原创 2015-09-20 10:55:24 · 603 阅读 · 0 评论 -
pandas read_csv 和 DictReader读取文件的区别
1、pandas 的 read_csv读取的文件会保持原始文件的数据类型,如果csv文件中对应的字段是int类型,那么读取出来的元素就是int类型,如果是str类型,那么读取出来的元素就是str类型。2、DictReader读取的全部当成是string类型经验:在读取文件内容的程序中,read_csv和DictReader一定不能混用,不然可能会带来一些隐蔽的bug,由于数据类型的原创 2017-02-06 20:44:53 · 6178 阅读 · 0 评论