一個簡易的TCP端口掃描器,使用python3實現。需求:掃描目標網站開放哪些端口號,將所有開放的端口號輸出。分析:使用socket連接,如果連接成功,認為端口開放,如果連接失敗,認為端口關閉(有可能端口開放但連接失敗,這里簡單認為端口不開放)使用到的庫:socket,threading過程:先定義一個函數,對給定的(ip,port)進行掃描,看其是否能連接成功。deftcpPortScan(ip,port,openPort):sock=socket.so
系統 2019-09-27 17:55:41 1879
本文實例講述了PythonWeb框架之Django框架Model基礎。分享給大家供大家參考,具體如下:model是關于你的數據的單一的,確定的信息來源。它包含您正在存儲的數據的基本字段和行為。Django通過抽象化的模型層(models)為你的網絡應用提供對于數據的結構化處理和操作處理,數據庫相關的代碼一般寫在models.py中,Django支持sqlite3,MySQL,PostgreSQL等數據庫,使用數據庫API對數據庫進行增刪改查的操作。使用哪種
系統 2019-09-27 17:54:54 1879
本文實例講述了python實現對象列表根據某個屬性排序的方法。分享給大家供大家參考,具體如下:對于一個已有的pythonlist,里面的內容是一些對象,這些對象有一些相同的屬性值,在一些特定的情況下,需要自己選擇特定的排序,也就是根據某一個具體的屬性來排序,在網上找了下資料,一般來說有兩種方法,但從根本上來說,還是調用了list.sort方法來實現。下面是簡單的測試代碼片段:#coding:utf-8classPerson:def__init__(self
系統 2019-09-27 17:53:53 1879
Python3快速入門(六)——Python3面向對象一、面向對象技術簡介1、面向對象簡介面向對象編程(ObjectOrientedPrograming,OOP)是一種編程思想,OOP把對象當成程序的一個基本單元,一個對象包含數據和操作數據的方法。面向對象編程的三大特性如下:A、封裝,可以隱藏實現細節,使代碼模塊化。B、繼承,可以通過擴展已存在的類來實現代碼重用,避免重復編寫相同的代碼。C、多態,封裝和繼承的目的都是為了實現代碼重用,而多態是為了實現接口重
系統 2019-09-27 17:52:41 1879
安裝pydensecrf時報錯:(venv)dorothy@dorothy-MS-7A94:~/project/venv/bin$pipinstallpydensecrfCollectingpydensecrfUsingcachedhttps://files.pythonhosted.org/packages/31/5a/1c2ab48e8019d282c128bc5c621332267bb954d32eecdda3ba57306b1551/pydense
系統 2019-09-27 17:52:21 1879
在了解裝飾器的之前一定要先了解函數作為參數傳遞,什么是函數內嵌,請參考我之前寫的博客函數簡介因為在python里面,函數也是對象,也可以作為參數進行傳遞.python裝飾器本質也是一種特殊函數,它接收的參數是函數對象,然后動態地函數參數添加額外的功能,而不用修改原有的函數對象.python裝飾器傳入的參數是函數,返回的值也是函數!python裝飾器思想有點類似設計模式的裝飾模式,其意圖是動態地給函數對象添加額外的功能.比如像增加日志打印的功能,有點面向切面
系統 2019-09-27 17:50:12 1879
表示時間的三種方式在Python中,通常有三種方式表示時間:時間戳,元祖(struct_time),格式化時間字符串。時間戳(timestamp):1970年1月1日00:00:00開始按秒計算的偏移量,type(time.time())float類型格式化時間字符串(FormatString):'1999-12-06'時間元組(stuct_time):共有9個元素(年月日時分秒,一年中的第幾周,一年中第幾天等)幾種時間格式的轉換#結構化時間-->%a%b
系統 2019-09-27 17:49:55 1879
首先我們要明白在python中當字符編碼為:UTF-8時,中文在字符串中的占位為3個字節,其余字符為一個字節下面就直接介紹幾種python中字符串常用的幾種字符串內置函數(本文中牽扯到了模塊與一些之前章節沒講過的相關知識,坑我之后會填的)字符串切片(截取字符串):#字符串切片string[開始位置:結束位置:步長]name="鞏?t鵬"print(name[0:])#從第一個字符截取到最后一個字符print(name[0:2])#從第一個字符截取到第二個字
系統 2019-09-27 17:49:35 1879
更新mysql8.17的腳本:2019-09-19#-*-coding:utf-8-*-importsysreload(sys)importgetoptimportcommandsimportsubprocessimportfileinputimportos__author__='Lenny'INFO="\033[1;33;40m%s\033[0m"ERROR="\033[1;31;40m%s\033[0m"NOTICE="\033[1;32;40m%s\
系統 2019-09-27 17:49:31 1879
本文章面向有一定基礎的python學習者,使用Pygame包開發一款簡單的游戲首先打開命令行,使用PyPI下載Pygame包(輸入命令pipinstallpygame)打開python編輯器(vs,IDLE,或其他),再引入包定義一些需要用到的數據先使用pygame包創建一個游戲窗口,然后使用循環將窗口展示出來,運行會出現下圖現在定義一個可操控的小球類Player,draw()方法可以使它展示在屏幕上,update()方法讓小球跟隨鼠標移動類似的,定義不可
系統 2019-09-27 17:49:28 1879
經歷移植jinja2到python3的痛苦之后,我把項目暫時放一放,因為我怕打破python3的兼容。我的做法是只用一個python2的代碼庫,然后在安裝的時候用2to3工具翻譯成python3。不幸的是哪怕一點點的改動都會打破迭代開發。如果你選對了python的版本,你可以專心做事,幸運的避免了這個問題。來自MoinMoin項目的ThomasWaldmann通過我的python-modernize跑jinja2,并且統一了代碼庫,能同時跑python2,
系統 2019-09-27 17:49:06 1879
隨便在網上找了找,感覺都是講半天講不清楚,這里寫一下。defgenerator():whileTrue:receive=yield1print('extra'+str(receive))g=generator()print(next(g))print(g.send(111))print(next(g))輸出:1extra1111extraNone1為什么會這樣呢,點進send就能看到一句話send:Resumesthegeneratorand"sends"
系統 2019-09-27 17:48:19 1879
Pythonlist內置sort()方法用來排序,也可以用python內置的全局sorted()方法來對可迭代的序列排序生成新的序列。1)排序基礎簡單的升序排序是非常容易的。只需要調用sorted()方法。它返回一個新的list,新的list的元素基于小于運算符(__lt__)來排序。>>>sorted([5,2,3,1,4])[1,2,3,4,5]你也可以使用list.sort()方法來排序,此時list本身將被修改。通常此方法不如sorted()方便,
系統 2019-09-27 17:47:37 1879
django在一個項目的目錄結構劃分方面缺乏必要的規范,因此不同人的項目組織形式也千奇百怪,而且也很難說誰的做法就比較好。我根據自己的項目組織習慣,發布了一個項目dj-scaffold。前些天在reddit上為我的項目dj-scaffold打了個“廣告”(見:http://redd.it/kw5d4)。不想評價甚糟,甚至差點被打成負分。其中更也人將這個項目說的一文不值。面對負面聲音雖然會有些不爽,但其中的建設性意見還是需要聽取的,至于那些純屬個人偏好部分就
系統 2019-09-27 17:46:10 1879
importsubprocessoutput=Popen(["mycmd","myarg"],stdout=PIPE).communicate()[0]importsubprocessp=subprocess.Popen(['ls','-a'],stdout=subprocess.PIPE,stderr=subprocess.PIPE)out,err=p.communicate()printout#workonUnix/Linuxonlyimportcom
系統 2019-09-27 17:45:26 1879