Time of Update: 2017-01-19
一、爬山法簡介爬山法(climbing method)是一種最佳化演算法,其一般從一個隨機的解開始,然後逐步找到一個最優解(局部最優)。 假定所求問題有多個參數,我們在通過爬山法逐步獲得最優解的過程中可以依次分別將某個參數的值增加或者減少一個單位。例如某個問題的解需要使用3個整數類型的參數x1、x2、x3,開始時將這三個參數設值為(2,2,-2),將x1增加/減少1,得到兩個解(1,2,-2), (3, 2,-2);將x2增加/減少1,得到兩個解(2,3, -2),(2,1,
Time of Update: 2017-01-19
一、計數排序計數排序(Counting sort)是一種穩定的排序演算法演算法的步驟如下:找出待排序的數組中最大和最小的元素統計數組中每個值為i的元素出現的次數,存入數組C的第i項對所有的計數累加(從C中的第一個元素開始,每一項和前一項相加)反向填充目標數組:將每個元素i放在新數組的第C(i)項,每放一個元素就將C(i)減去1當輸入的元素是 n 個 0 到 k
Time of Update: 2017-01-19
好了,廢話少說,我們先看看幾個樣本吧一、開啟一個網頁擷取所有的內容複製代碼 代碼如下:from urllib import urlopendoc = urlopen("http://www.baidu.com").read()print doc二、擷取Http頭複製代碼 代碼如下:from urllib import urlopendoc = urlopen("http://www.baidu.com")print doc.info()print
Time of Update: 2017-01-19
python提供了一個struct模組來提供轉換。下面就介紹這個模組中的幾個方法。 struct.pack():struct.pack用於將Python的值根據格式符,轉換為字串(因為Python中沒有位元組(Byte)類型,可以把這裡的字串理解為位元組流,或位元組數組)。其函數原型為:struct.pack(fmt, v1, v2, ...),參數fmt是格式字串,關于格式字串的相關資訊下面有所介紹。v1, v2,
Time of Update: 2017-01-19
python 開啟瀏覽器,可以做簡單的刷網頁的小程式。僅供學習,別用非法用途。python的webbrowser模組支援對瀏覽器進行一些操作,主要有以下三個方法:複製代碼 代碼如下:webbrowser.open(url, new=0, autoraise=True)webbrowser.open_new(url)webbrowser.open_new_tab(url)我們需要瞭解webbrowser.open()方法:複製代碼 代碼如下:webbrowser.open(url, new=0,
Time of Update: 2017-01-19
PHPMyAdmin暴力破解,加上CVE-2012-2122 MySQL Authentication Bypass Vulnerability漏洞利用。#!/usr/bin/env pythonimport urllib import urllib2 import cookielib import sysimport subprocessdef Crack(url,username,password):opener =
Time of Update: 2017-01-19
1)忘記在 if , elif , else , for , while , class ,def 聲明末尾添加 :(導致 “SyntaxError :invalid syntax”)該錯誤將發生在類似如下代碼中:if spam== 42 print('Hello!')2) 使用 = 而不是 ==(導致“SyntaxError: invalid syntax”) = 是賦值操作符而 == 是等於比較操作。該錯誤發生在如下代碼中:if spam= 42: print('Hello!'
Time of Update: 2017-01-19
Python判斷變數是否已經定義是一個非常重要的功能,本文就來簡述這一功能的實現方法。其實Python中有很多方法可以實現判斷一個變數是否已經定義了。這裡就舉出最常用的兩種作為樣本,如下所示:方法一:try except方法:def isset(v): try : type (eval(v)) except : return 0 else : return 1 用法:if isset('user_name'): print 'user_
Time of Update: 2017-01-19
一般來說在 Python 中,為瞭解決記憶體流失問題,採用了對象引用計數,並基於引用計數實現自動記憶體回收。由於Python 有了自動記憶體回收功能,就造成了不少初學者誤認為自己從此過上了好日子,不必再受記憶體流失的騷擾了。但如果仔細查看一下Python文檔對 __del__() 函數的描述,就知道這種好日子裡也是有陰雲的。下面摘抄一點文檔內容如下:Some common situations that may prevent the reference count of an object
Time of Update: 2017-01-19
動態類型(dynamic
Time of Update: 2017-01-19
list解析先看下面的例子,這個例子是想得到1到9的每個整數的平方,並且將結果放在list中列印出來>>> power2 = []>>> for i in range(1,10):... power2.append(i*i)... >>> power2[1, 4, 9, 16, 25, 36, 49, 64, 81]python有一個非常有意思的功能,就是list解析,就是這樣的:>>> squares = [x**2
Time of Update: 2017-01-19
問題定義一個int型的一維數組,包含40個元素,用來儲存每個學員的成績,迴圈產生40個0~100之間的隨機整數,(1)將它們儲存到一維數組中,然後統計成績低於平均分的學員的人數,並輸出出來。(2)將這40個成績按照從高到低的順序輸出出來。解決(python)#! /usr/bin python#coding:utf-8from __future__ import division #實現精確的除法,例如4/3=1.333333import randomdef make_score(num):
Time of Update: 2017-01-19
在電腦進階中語言,運算子是比較多樣化的。其實,也都源於我們日常的需要。算術運算子前面已經講過了四則運算,其中涉及到一些運算子:加減乘除,對應的符號分別是:+ - * /,此外,還有求餘數的:%。這些都是算術運算子。其實,算術運算子不止這些。根據中學數學的知識,看官也應該想到,還應該有乘方、開方之類的。下面列出一個表格,將所有的運算子表現出來。不用記,但是要認真地看一看,知道有那些,如果以後用到,但是不自信能夠記住,可以來查。 運算子 描述 執行個體
Time of Update: 2017-01-19
本文執行個體講述了python中wxPython菜單的使用方法,分享給大家供大家參考。具體如下:先來看看下面這段代碼:import wx APP_EXIT=1 #定義一個控制項ID class Example(wx.Frame): def __init__(self, parent, id, title): super(Example,self).__init__(parent, id, title) #調用你類的初始化 self.InitUI()
Time of Update: 2017-01-19
本文執行個體講述了python之wxPython的使用方法,分享給大家供大家參考。具體方法如下:先來看看效果,這裡載入一張圖片:代碼如下:#!/usr/bin/env python """hello wxPython program""" import wx class Frame(wx.Frame): #wxPrame subclass """Frame class that display a image""" def __init__(self, image,
Time of Update: 2017-01-19
本文執行個體講述了python使用Berkeley DB資料庫的方法,分享給大家供大家參考。具體實現方法如下:try: from bsddb import db except ImportError: from bsddb3 import db print db.DB_VERSION_STRING #檢測是否有bsddb包 def irecords(curs): record = curs.first() while record: yield record
Time of Update: 2017-01-19
本文執行個體講述了Python中unittest的用法,分享給大家供大家參考。具體用法分析如下:1. unittest module包含了編寫運行unittest的功能,自訂的test class都要整合unitest.TestCase類,test method要以test開頭,運行順序根據test method的名字排序,特殊方法:① setup():每個測試函數運行前運行② teardown():每個測試函數運行完後執行③ setUpClass():必須使用@classmethod 裝飾器,
Time of Update: 2017-01-19
裝飾器(decorator)是一種進階Python文法。裝飾器可以對一個函數、方法或者類進行加工。在Python中,我們有多種方法對函數和類進行加工,比如在Python閉包中,我們見到函數對象作為某一個函數的返回結果。相對於其它方式,裝飾器文法簡單,代碼可讀性高。因此,裝飾器在Python項目中有廣泛的應用。裝飾器最早在Python 2.5中出現,它最初被用於加工函數和方法這樣的可調用對象(callable object,這樣的對象定義有__call__方法)。在Python
Time of Update: 2017-01-19
Python一切皆對象(object),每個對象都可能有多個屬性(attribute)。Python的屬性有一套統一的管理方案。屬性的__dict__系統對象的屬性可能來自於其類定義,叫做類屬性(class attribute)。類屬性可能來自類定義自身,也可能根據類定義繼承來的。一個對象的屬性還可能是該對象執行個體定義的,叫做對象屬性(object
Time of Update: 2017-01-19
Python使用中物件導向的語言,支援繼承、多態;定義一個Person類:複製代碼 代碼如下:>>> class Person:... def sayHello(self):... print('hello')...>>> Person.sayHello(None)hello>>> Person().sayHello()hello 可以修改Person的類方法複製代碼 代碼如下:>>> def