
python编程
二进制程序猿
人生的天平永远会青睐努力的人
展开
-
IndentationError:expected an indented block错误解读
Python语言是一款对缩进非常敏感的语言,给很多初学者带来了困惑,即便是很有经验的Python程序员,也可能陷入陷阱当中。最常见的情况是tab和空格的混用会导致错误,或者缩进不对,而这是用肉眼无法分别的。在编译时会出现这样的错IndentationError:expected an indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进原创 2014-10-21 23:30:06 · 763 阅读 · 0 评论 -
Python编程八荣八耻
以爱Python为荣, 以三心二意为耻;以动手实践为荣 , 以只看不练为耻;以打印日志为荣 , 以单步跟踪为耻;以空格缩进为荣 , 以制表缩进为耻;以单元测试为荣 , 以人工测试为耻;以模块复用为荣 , 以复制粘贴为耻;以多态应用为荣 , 以分支判断为耻;以总结分享为荣 , 以跪求其解为耻;原创 2017-02-21 15:05:00 · 632 阅读 · 0 评论 -
CTF竞赛中的奇葩注册方式
最近看了来看ctftime中的比赛,看到ictf比赛,就索性点进去看看,发现,我XXXX,竟然用Python写了写了一个注册client端,需要用程序注册,现将源码更新如下,以后我们国内比赛说不定也可以参考一下: # # The iCTF game client. # # Written by subwire and the iCTF team, 2015 #原创 2017-03-03 22:50:12 · 3534 阅读 · 0 评论 -
线程安全浅谈
近日学习 Python logging模块的时候,我看文中提到,Python logging模块是线程安全的,所以本篇文章主要就线程安全做相关阐述。 0x01 线程安全的概念一般来讲,当一个函数被多个线程反复调用的时候,他会一直产生正确的结果,那么这个函数就是线程安全的。线程安全函数解决了多个线程调用函数时访问临界资源的冲突问题,也就是我们日常在Linux操作中,经常遇到资源冲突问题,例如消费原创 2017-02-25 09:30:40 · 538 阅读 · 0 评论 -
自己实现的一个python版本的多线程 ftp扫描器,python版本3.0以上
扫描器 Github地址主要代码如下:#!/usr/bin/env python$# coding=utf-8'''python版本必须满足3.0以上'''import socket,ftplib,sys,osfrom concurrent.futures import ThreadPoolExecutor #python 3.0以上可以使用的线程池def ip2num(ip):原创 2017-03-04 16:33:17 · 1041 阅读 · 0 评论 -
为什么说python的多线程是鸡肋?
0x01 论多线程的重要性多线程还是有用的,多进程有多进程的好处,多线程有多线程的好处。多进程稳定,启动时开销大点,但如果你的运行时间远大于多进程的时间,用多进程比较方便,如postgresql用多进程,chrome 多进程。如果你只是想做个定时器样的简单东西,对稳定性要求低些,如vb,c#类似的定时器,用多线程吧,但线程的同步要注意了。python的线程更加类似定时器,python的线程不是真线原创 2017-02-26 11:08:19 · 5212 阅读 · 1 评论 -
如何打开很大很大的文件---python
今天直接面对了一个很严重的问题,生成的一个大的字典,如何打开成了一个问题,因此发觉了一下这个问题:基本原理:通过不断取1024KB为大小的内容,然后通过迭代器yield这个设备读取无限大的内容。#coding=utf-8import os.pathimport time'''切分成小文件,然后读取'''def read_in_block(filepath): BLOCK_SIZE =原创 2017-03-04 22:47:17 · 1360 阅读 · 1 评论 -
Python自学-第16次作业
本次作业要求: 习题一:已知列表 info = [1,2,3,4,55,233] 生成6个线程对象,每次线程输出一个值,最后输出:”the end”。 习题二:已知列表 urlinfo = [‘http://www.sohu.com‘,’http://www.163.com‘,’http://www.sina.com‘] 用多线程的方式分别打开列表里的URL,并且原创 2017-02-26 22:02:12 · 867 阅读 · 0 评论 -
如何解决Pywin32安装失败问题
问题由来最近需要安装一个python插件,然后发现最后需要一个pywin32 的python库来跑win32程序,索性装一个。 然后就出现一个问题,从如下网址下一个:https://sourceforge.net/projects/pywin32/?source=typ_redirect根据你机器的型号下一个,然后开始安装。突然出现一个错误,崩溃了!!!瞬间迷茫了!!!! 为什么?出现了C:\p原创 2017-03-12 17:21:00 · 7000 阅读 · 0 评论 -
information_schema详解
information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。select * from INFORMATION_SCHEMA.TABLESMysql的INFORMATION_SCHEMA数据库包含了一些表和视图,提供了访问数据库元数据的方式。元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于原创 2017-03-22 13:02:29 · 1750 阅读 · 0 评论 -
windows下配置python scrapy 开发环境
安装Pycharm开发环境参考安装scrapywindows下安装利用pip或者easy_install ,参考如下安装过程中可能会出现的问题1 丢失lxml 支持包问题2 丢失win32api支持问题3 python版本问题4 scrapy运行相关问题原创 2017-03-12 23:23:50 · 359 阅读 · 0 评论 -
scrapy 爬取https网页时出现ssl错误
还有好多错误代码没有保存下来,错误发生在Openssl/SSL.py中:AttributeError:'NoneType'object has no attribute '_app_data'11卸载scrapy 和 ssl 后,重新安装一遍解决了。 注意安装的顺序,先pyopenssl 后 scrapypip uninstall scrapyp原创 2017-04-08 10:26:38 · 5299 阅读 · 0 评论 -
如何快速将第三方库应用加入到pycharm中
如何加入很多日常应用一样,我们需要将第三方库拖入到我们的开发环境中 开发环境: pycharm python2.7例如,我们需要将numpy加入到我们的开发环境中,我们需要如,进入 File>setting>Project:XXXX>Project Interpreter>然后在里面点+号那个,下图有示意:最后,install一下,就可以原创 2017-03-14 13:01:52 · 1540 阅读 · 0 评论 -
错误pycurl.error: (60, 'SSL certificate problem: unable to get local issuer certificate')解决方案
The problem is that pycurl needs an up-to-date certificate chain to verify the ssl certificates.A good solution would be to use certifi.It's basically an up-to-date copy of mozilla's built i原创 2017-04-09 15:08:56 · 3552 阅读 · 0 评论 -
python 中执行系统命令执行的若干方法
Python中执行系统命令常见的几种方法 (1) os.system 这个方法是直接调用标准C的system() 函数,仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息。import osos.system(‘cat /proc/cupinfo’)(2) os.popen 该方法不但执行命令还返回执行后的信息对象,是通过一个管道文件将结果返回。output = os.popen(‘ca原创 2017-04-06 08:44:26 · 750 阅读 · 0 评论 -
Python 中classmethod和staticmethod区别
1602down voteacceptedThough classmethod and staticmethod are quite similar, there's a slight difference in usage for both entities: classmethod must have a reference to a class object原创 2017-05-10 21:18:36 · 696 阅读 · 0 评论 -
Ubuntu运行scrapy报“scrapy: 'module' object has no attribute 'OP_SINGLE_ECDH_USE'错误解决方法”
scrapy: ‘module’ object has no attribute ‘OP_SINGLE_ECDH_USE’错误解决方法这个问题出在你的ubuntu安装的pyopenssl和本机的openssl出现版本差异所致。问题解决方法:运行 sudo apt-get install libssl-devpip install pyopenssl –upgrade参考链接:原创 2017-05-11 09:18:42 · 2362 阅读 · 2 评论 -
编写poc和exploit的几款常用工具介绍
1.pwntoolspwntools是一个CTF框架和漏洞利用开发库,用Python开发,由rapid设计,旨在让使用者简单快速的编写exploit。pwntools对Ubuntu 12.04和14.04的支持最好,但是绝大多数的功能也支持Debian, Arch, FreeBSD, OSX, 等等。sudo pip install pwntools即可安装原创 2017-05-07 09:17:00 · 2130 阅读 · 0 评论 -
Python自学之is和‘==’的区别
在python中 关键词is检查两个对象是否是同一个对象,而==检查他们是否相等.例如p = [1] q = [1] p is q # False 因为他们不是同一个对象 p == q # True 因为他们的值相等但是有且仅有一个None,他们总是相同的,所以会返回True.p = None q = None p is q # True 因为他们都指向同一个”None” a=’tes原创 2017-02-12 16:58:17 · 333 阅读 · 0 评论 -
python中元祖,列表,字典的区别
Python中有3种內建的数据结构:列表、元祖和字典:1.列表 list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。 列表中的项目应该包括在方括号中,这样Python就知道你是指明一个列表。一旦你创建了一个列表,就可以添加、删除,或者是搜索列表中的项目。由于你可以增加或者删除项目,我们说列表是可变的数据类型,即这种类型是可以被改变的,且列表原创 2017-02-07 23:54:51 · 975 阅读 · 0 评论 -
Python自学 第一次作业
#coding=utf-8def function1(*num): for i in num: if isinstance(i,int): pass else: return "wrong" a = sorted(num) print a return "Maximum is %d and原创 2017-02-12 10:06:01 · 574 阅读 · 0 评论 -
多python随机数函数的分析
一、在开始正常随机函数,进行一下相关的介绍下面介绍下random中常见的函数。前提:需要导入random模块>>>import random1、random.random random.random()用于生成一个0到1的随机符小数: 0 >>> random.random() # Random float x,2、r原创 2015-04-09 22:10:32 · 524 阅读 · 0 评论 -
python操作符的优先级 一图见分晓
原创 2015-04-09 22:22:08 · 1114 阅读 · 1 评论 -
python初学者常见问题汇总(留作日后参考)
当初学 Python 时,想要弄懂 Python 的错误信息的含义可能有点复杂。这里列出了常见的的一些让你程序 crash 的运行时错误。1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 “SyntaxError :invalid syntax”)该错误将发生在类似如下代码中:?原创 2016-04-23 21:38:26 · 948 阅读 · 0 评论 -
ImportErrorNomodulenamedCrypto.Cipher问题解决方案
from Crypto import Random 问题from Crypto.Cipher import AES 问题在导入以上两条语句中,出现问题,显示出现无法找到crypto包,按照提示,加入crypto包,然后还是出现这个问题。问题解决参考以下链接:http://stackoverflow.com/questions/19623267/importerror-no-module-named-原创 2016-11-28 14:49:52 · 26013 阅读 · 2 评论 -
python中yield使用方法
参考http://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/yield其实是一个iterable变量,因此,通过这种方法主要是考虑到内存的开销和容易调用性方面的考虑。原创 2017-02-06 22:59:44 · 388 阅读 · 0 评论 -
virtualenv 安装及使用
virtualenv是python下的一个个沙盒应用环境: 本机中多个python应用可能会用到python 2.6/2.7/3.0等多种版本的python程序,因此在本机调试中,需要借用virtualenv快速构造python调试环境,因此安装这种工具是必要的。相关virtualenv安装和使用指南:http://www.cnblogs.com/tk091/p/370原创 2017-02-06 23:16:08 · 360 阅读 · 0 评论 -
python编码声明:是coding:utf-8还是coding=urf-8呢?
python编码声明:是coding:utf-8还是coding=urf-8呢?我们知道在Python源码的头文件中要声明编码方式,如果你不只是会用到ascii码,很多人都写得都有点差别:#coding=utf-8#coding:utf-8#-*- coding:utf-8 -*-那么怎样写才是有效地呢,哪些优势无效的呢? 可以查看下http://www.python.org/dev/peps/p原创 2017-02-07 22:54:21 · 1351 阅读 · 0 评论 -
python如何实现快速的求和函数
日常我们最经常用到求和函数,但是假若我们要加的参数个数不能确定时,怎么进行加和呢?废话不多说,直接上代码0x01 程序代码def add(*num): d = 0 for i in num: d += i return d 然后,通过如下方式调用:add(1,2,3,4,45,5)add(1,2,4)运行后发现原创 2017-02-08 16:14:40 · 6048 阅读 · 0 评论 -
Python关键字yield详解
导读:此文由伯乐在线 –刘志军编译自stackoverflow Python标签中投票率最高的一个问题《The Python yield keyword explained》,e-satis 详细回答了关于yield 以及 generator、iterable、iterator、iteration之间的关系。0x01 迭代器(Iterator)概念为了理解yield是什么,首先要明白生原创 2017-02-27 20:37:35 · 286 阅读 · 0 评论 -
斐波那契数列的四种简单实现方式
#coding=utf8'''利用四种方法实现斐波那契数列'''#第一种方法,是最最普通的一种方法def fab1(max): n, a, b = 0, 0, 1 while n < max: print b a, b = b, a + b n = n + 1print fab1(5)#第二种方法,打印listdef fab2(max):原创 2017-02-27 21:14:49 · 643 阅读 · 0 评论 -
python自学-第八次作业
#coding=utf8import osimport urllibimport random#获取地址,然后写入文件def save_url_content(url,folder_path): if not (url.startswith('http://') and url.startswith('https://')): print u'error' if原创 2017-02-18 23:06:55 · 266 阅读 · 0 评论 -
Python自学--第九次作业
#coding=utf8import osimport urllibimport random#获取地址,然后写入文件def save_url_content(url,folder_path): if not (url.startswith('http://') and url.startswith('https://')): print u'error' if原创 2017-02-19 19:38:05 · 359 阅读 · 0 评论 -
如何解决urllib.request找不到问题
python 3.x中urllib库和urilib2库合并成了urllib库, 其中urllib2.urlopen()变成了urllib.request.urlopen()urllib2.Request()变成了urllib.request.Request() 因此,python3.x得版本中可以使用urllib.request库; 但是在python2.7的库中,还是得使用urllib2.u原创 2017-02-11 12:09:17 · 16627 阅读 · 0 评论 -
Python中urllib和urllib2的区别与联系
近日学习urllib作为一个Python菜鸟,之前一直懵懂于urllib和urllib2,以为2是1的升级版。今天看到老外写的一篇《Python: difference between urllib and urllib2》才明白其中的区别 You might be intrigued by the existence of two separate URL modules in Pyth原创 2017-02-11 14:11:10 · 523 阅读 · 0 评论 -
Python自学-第11次作业
#coding=utf-8class test(object):#属性的装饰方法 #@property #@staticmethod # 静态方法,将命名空间中放入test函数 def d(self): return 4t = test()print t.d()class boy(object): gender = 1 def __init原创 2017-02-20 16:33:25 · 585 阅读 · 0 评论 -
Python自学-第12次作业
#coding=utf8'''题目一: 写一个网页数据操作类。完成下面的功能:提示:需要用到urllib模块get_httpcode()获取网页的状态码,返回结果例如:200,301,404等 类型为intget_htmlcontent() 获取网页的内容。返回类型:strget_linknum()计算网页的链接数目。'''import urllibimport reclass mywebapp(原创 2017-02-20 17:24:00 · 613 阅读 · 0 评论 -
Python自学 第二次作业
#coding=utf-8'''习题:1 定义一个方法get_num(num),num参数是列表类型,判断列表里面的元素为数字类型。其他类型则报错,并且返回一个偶数列表:(注:列表里面的元素为偶数)。2 定义一个方法get_page(url),url参数是需要获取网页内容的网址,返回网页的内容。提示(可以了解python的urllib模块)。3 定义一个方法 func,该func引入任意多的列表原创 2017-02-12 10:02:07 · 463 阅读 · 0 评论 -
python 日志模块详解
Python标准模块--logging1 logging模块简介logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;print将所有信息都输出到标准输出中,严重影响开发者从标转载 2017-05-20 23:20:38 · 639 阅读 · 0 评论