Time of Update: 2017-01-19
在 python的lib目錄裡有一個:this.py,它其實是隱藏著一首詩,源碼如下:複製代碼 代碼如下:s = """Gur Mra bs Clguba, ol Gvz CrgrefOrnhgvshy vf orggre guna htyl.Rkcyvpvg vf orggre guna vzcyvpvg.Fvzcyr vf orggre guna pbzcyrk.Pbzcyrk vf orggre guna pbzcyvpngrq.Syng vf orggre guna
Time of Update: 2017-01-19
一、類的定義和使用python定義一個類的基本文法是:複製代碼 代碼如下:class classname([基類一,基類二...]): [def __init__(self, [agv1,agv2...]):] # 定義建構函式 def method1(self, [agv1,agv2...]): # 成員函數 使用時用:對象執行個體名 =
Time of Update: 2017-01-19
Python語言功能非常強大,除了類之外,還有模組和包的概念,這有點像perl,此處簡單說說包和模組。一、Python中的模組模組——其實就是我們說的庫(lib)的概念,不過它不僅只是可以包含一系列函數,也可以包含類,python裡是沒有像C語言之類,直接include某檔案的,包正是這種類似的東西。Python 引入模組的方法有兩種:1、import 模組名(實際是對應的就是 檔案名稱.py )2、模組名 = __import__("模組檔案名稱(不帶副檔名)")也可以" import
Time of Update: 2017-01-19
Python入門 本系列為Python學習相關筆記整理所得,IT人,多學無害,多多探索,激發學習興趣,開拓思維,不求高大上,只求懂點皮毛,作為知識儲備,不至於落後太遠。 本文主要介紹Python的相關背景,環境搭建。一、瞭解Python 1,關於Python的語言特點:
Time of Update: 2017-01-19
因為突然有個邪惡的想法,想在自己的Android平板上面搭建一個DNS伺服器,因為平板上之前安裝過SL4A和Python的解譯器,也想繼續學學Python因此,就打算用Python實現了。在Google上面找了一下,Python實現的DNS,沒找到我所希望的答案,因此就決定自己來實現了。現在所實現的沒什麼高深的,只是能夠對A記錄查詢進行簡單的匹配和回複。實現的代碼如下:複製代碼 代碼如下:'''Created on 2012-10-15@author: RobinTang'''import
Time of Update: 2017-01-19
註:使用這個指令碼需要安裝scapy 包最好在linux平台下使用,因為scapy包在windows上安裝老是會有各種問題複製代碼 代碼如下:#coding:utf-8#example :sudo python arp_dos.py 192.168.1.103from scapy.all import ARP,sendimport os,re,sysdef get_gateway_ip(): t=os.popen('route -n')
Time of Update: 2017-01-19
考慮到我手上的伺服器逐漸的增多,有時候需要大規模的部署同一個檔案,例如因為方便使用systemtap這個工具定位問題,需要把手上幾百台伺服器同時安裝kernel-debuginfo這個包,原有的方式採用一個原始伺服器,採用rsync或者scp之類的檔案傳輸方式只能做到一個點往下分發這個檔案,這個時候下發的速度就會比較的慢,基於以上原因,我寫了一個基於bt協議傳輸檔案的小工具,實際測試,傳輸到10個機房,70多台機器傳輸一個240M的這個核心檔案,到所有的機器,源採用限速2m/s的上傳速度,測試的
Time of Update: 2017-01-19
情境:某個檔案夾下麵包含數量巨大的檔案,需求需要將這些檔案按組(比如5000個一組)存放到不同的目錄中去。複製代碼 代碼如下:# Filename: CopyFiles.pyimport osimport os.pathfolder_capacity = 20def copy_files(src_dir, dest_dir): count = 0 current_folder = ''
Time of Update: 2017-01-19
直接上代碼:Server端:複製代碼 代碼如下: #!/usr/bin/env python # UDP Echo Server - udpserver.py import socket, traceback host = '' port = 54321 s = socket.socket(socket.AF_INET,
Time of Update: 2017-01-19
最近在做的一個項目中需要使用到HTML5中引入的WebSocket技術,本來以為應該很容易就能搞定,誰知道在真正上手開發了以後才發現有很多麻煩的地方,雖然我們是一個以前端開發和設計見長的團隊,而且作為一個二手程式猿又長期不被待見,但是為了讓有同樣需求的朋友少走些彎路,我還是決定把實現方法貼在這個地方。關於WebSocket的基本概念,維基百科上解釋的很清楚,而且網上也能搜出來一大把,這裡就略過不表,直接進入正題。這次的問題首先有一個前提,就是得用Python來實現這個伺服器,如果對具體語言沒有限
Time of Update: 2017-01-19
一、不要使用可變對象作為函數預設值複製代碼 代碼如下:In [1]: def append_to_list(value, def_list=[]): ...: def_list.append(value) ...: return def_list &
Time of Update: 2017-01-19
在大的互連網公司幹技術的基本都會碰到測試、預發布、線上這種多套環境的,來實現測試和線上正式環境的隔離,這種情況下,就難免會碰到秀逗了把測試的連結發布到線上的情況,一般這種都是通過一些測試的檢查工具來檢查連結來規避風險的。前兩天跟了一個問題也是這個情況,開發疏忽把日常url發布到線上了。但是測試那邊沒有自動化的監控工具,導致沒有及時發現,由於最近正好在看python,後來處理完回家就想用python做個簡單的監控。
Time of Update: 2017-01-19
在Linux上有個常用的命令 curl(非常好用),支援curl的就是大名鼎鼎的libcurl庫;libcurl是功能強大的,而且是非常高效的函數庫。libcurl除了提供本身的C API之外,還有多達40種程式設計語言的Binding,這裡介紹的PycURL就是libcurl的Python
Time of Update: 2017-01-19
Step1:安裝python和sublimeStep2:給sublime安裝package control,安裝參見: 官網Step3:配置安裝路徑方式一:配置windows的Path好處就是cmd的時候也可以運行,視為系統,使用者層級的配置;方式二:配置sublime的python的sublime_build點擊:Preference -> Browse Packages -> 在python目錄下,編輯Python.sublime-build檔案,添加python應用程式的路徑:
Time of Update: 2017-01-19
第一次用Python寫這種比較實用且好玩的東西,權當練手吧遊戲說明:* P鍵控制“暫停/開始”* 方向鍵控制貪吃蛇的方向原始碼如下:複製代碼 代碼如下:from Tkinter import *import tkMessageBox,sysfrom random import randintclass Grid(object): def
Time of Update: 2017-01-19
在介紹yield前有必要先說明下Python中的迭代器(iterator)和產生器(constructor)。一、迭代器(iterator)在Python中,for迴圈可以用於Python中的任何類型,包括列表、元祖等等,實際上,for迴圈可用於任何“可迭代對象”,這其實就是迭代器迭代器是一個實現了迭代器協議的對象,Python中的迭代器協議就是有next方法的對象會前進到下一結果,而在一系列結果的末尾是,則會引發StopIteration。任何這類的對象在Python中都可以用for迴圈或其他
Time of Update: 2017-01-19
這個是python的一個內建函數,看書的時候發現了他,mark一下當我們既需要遍曆索引同時需要遍曆元素的時候,可以考慮使用enumerate函數,enumerate函數接受一個可遍曆的對象,如列表、字串比如我們有一個["one","two","there"]的列表,我們需要在列表的每個元素前面加上他的編號複製代碼 代碼如下:i = 0seq = ["one","two","three"]for element in seq: seq[i] = '%d: %s' % (i, seq[i]
Time of Update: 2017-01-19
一、對列表(list)進行排序推薦的排序方式是使用內建的sort()方法,速度最快而且屬於穩定排序複製代碼 代碼如下:>>> a = [1,9,3,7,2,0,5]>>> a.sort()>>> print a[0, 1, 2, 3, 5, 7, 9]>>> a.sort(reverse=True)>>> print a[9, 7, 5, 3, 2, 1, 0]>>> b = ['e','
Time of Update: 2017-01-19
前段時間為準備百度面試惡補的東西,雖然最後還是被刷了,還是把那幾天的“戰利品”放點上來,演算法一直是自己比較薄弱的地方,以後還要更加努力啊。下面用Python實現了幾個常用的排序,如快速排序,選擇排序,以及二路並歸排序等等。複製代碼 代碼如下:#encoding=utf-8import randomfrom copy import copydef directInsertSort(seq): """ 直接插入排序 """ size = len(seq) for i
Time of Update: 2017-01-19
關於Python的檔案遍曆,大概有兩種方法,一種是較為便利的os.walk(),還有一種是利用os.listdir()遞迴遍曆。方法一:利用os.walkos.walk可以自頂向下或者自底向上遍曆整個檔案樹,然後返回一個含有3個元素的tuple,(dirpath, dirnames, filenames),要注意的是,os.walk()會返回一個generater,所以調用的時候一定要放到for迴圈中。複製代碼 代碼如下:import osdef walk_dir(dirname):