發表文章

目前顯示的是 9月, 2016的文章

Python 研究 - 基礎篇 2

for迴圈 >>> for i in range(len(name)): ...     print(name[i]) ... a s d f g rang為跌代器,range(10)相當於0-9。 本例子用for迴圈印出字串name裡的每一個字元。 while迴圈 >>> name='anthony' >>> while True: ...     if name=='anthony': ...             print('hello,anthony') ...             break ...     else: ...             print('error') ...             break ... hello,anthony 當條件為真實,執行此迴圈,本例while迴圈中加入判別,如果條件滿足則印出hello,anthony跳出迴圈(break用來跳出迴圈,不跳就會變成無窮迴圈),如果條件不滿足則印出error跳出迴圈 3.列表(list) 列表的表現形式:    name_list = ['akon','ak','cloris',12]                                           列表也支持下標索引,所以可以被切片: >>> name_list = ['akon','ak','cloris',12] >>> name_list[2:3] ['cloris'] 計算列表長度(元素個數): >>> name_list = ['akon','ak','cloris',12] >>> len(name_list) 4 刪除列表元素(del): >>> name_list = ['akon','ak','cloris',12] >>> del name_

Python 研究 - 基礎篇

關於Python解釋器聲明和內容編碼: 在scripts的開頭必須聲明用什麼解釋器來執行程式碼和聲明編碼(Python3可以不用聲明內容編碼),Python解釋器在載入.py文件中的程式碼時,會對內容進行編碼(預設ascii),聲明如下:    #!/usr/bin/env python (linux環境下使用) # -*- coding:utf-8 -*-   常用編碼種類別:   ascii:美國標準訊息交換碼(8位)   unicode:萬國碼(至少16位),可以表示所有語言   utf-8:可以自動識別需要ascii或unicode編碼(節省空間)    註釋   單行註釋用#號表示,如下: #這一行被註釋   多行註釋用三個單引號(''' ''')或雙引號(""" """)表示,如下: ''' 多行註釋 多行註釋 ''' """ 多行註釋 多行註釋 """ 變 數 變數名要求: 只能用字母,下劃線和數字組成 第一個字元不能為數字 變數名要通俗易懂 聲明變數名的時候不能使用特殊關鍵字 (False,class,finally,is,return,None,continue,for,lambda,try ,True,def,from,nonlocal,while,  and,del,global,not,with,as,elif,if,or,yield,assert,else,import,pass,break,except,in,raise) 輸入:   輸入可以使用input(Python3)或raw_input(Python2.x)方法,用法如下: name=input('請輸入內容:') #Python3中用法 name=raw_input('請輸入內容:') #Python2.x中用法 資料類別型: 1.單值 數字:   整形(int):最大取值為2147483647(2**31-1)   長整型(long):最大取值為9223372036854775807(2**63-1)   浮點型(float):3.

Python 研究 - 有趣的 ** 用法

* 在 python 中,求餘數一樣是 %,求冪次則是 ** 例如要得到三的平方      3 ** 2 //為去除餘數,例如:5/2.0 的結果為 2.5,5//2.0 的結果為 2

Python 研究 - lambda 用法

Python 提供了一個簡易的 function define:lambda,用完即丟,不著痕跡。讓你實作出很簡單的 function ( 只處理一個運算式 )。 lambda param1, param2, ... : expression #其實就等於 def fun( param1, param2, ... ) :     return expression 其中的 expression 不能放 assignment,也就是這一行指令不能放=等號。因為,它就這麼簡單,別把它搞複雜化嘛~ Ex: def func(x, y, z):     return x + y + z #>>>  func(1, 2, 3) #>>>  6 func2 = lambda x,y,z : x+y+z #>>>  func2(1, 2, 3) #>>>  6 #也可以應用在 map  上 my_list = [1, 2, 3] map( lambda i: i * i, my_list ) #>>>  (1, 4, 9) lambda 在某些方面而言確實是很好用,但是也不能濫用,否則可能造成程式的可讀性降低。

Python 研究 - 字串格式化相關

Python 提供和 C 一樣的字串格式化用法可以參考下表 格式化字串時,所使用的 %d、%f、%s 等 與C語 言類似,之後使用%接上一個 tuple , 也就是範例中以 () 包 括的實字表示部份。一些可用的字串格式字列舉如下: %% 在字串 中顯示% %d 以10 進位整數方式輸出 %f 將浮點 數以10進位方式輸出 %e, %E 將浮點 數以10進位方式輸出,並使用科學記號 %o 以8進 位整數方式輸出 %x, %X 將整 數以16進位方式輸出 %s 使用 str() 將字串輸出 %c 以字元 方式輸出 %r 使用 repr() 輸 出字串

PHP 在 xampp 開啟 XDebug

圖片
首先找到 php.ini 路徑在C:\xampp\php\php.ini 開啟後找到應用檔案的位置 zend_extension = "D:\xampp\php\ext\php_xdebug.dll" 接著因為我們要做網頁的除錯,所以要加入遠端的一些設定(有的只是拿掉該行前面的註解";"而已),如下: //其實這行可開可不開,這行主要就是開啟偵錯的堆疊程序的功能,是否需要當然就是因人而異嘍 xdebug.default_enable = "On" //這行就是必需的了,若是要針對網頁的偵錯,這個就一定要打 xdebug.remote_enable = 1 //除錯的協定,若是php3以前的版本,就請改為"gdb" //官方設明文件中有提到,從xdebug 2.1以後的版本只支援"dbgp"這個協定 xdebug.remote_handler = "dbgp" //要除錯的host name或是IP(不用加上埠號) xdebug.remote_host = "localhost" //xdebug要用到的埠號 xdebug.remote_port = 9000 //這個項目一樣是看個人需求,看是否需要將查錯的資料儲存出來,設定其存放的目錄 xdebug.trace_output_dir = "D:\xampp\tmp" 以上設定完成後,請記得重啟Apache 接著執行phpinfo();可以看到多出下圖中被框起來的那一段文字

Python 研究 - 中循環語句中的 else 用法

本文討論Python的for…else和while…else語法,這是Python中最不常用、最為誤解的語法特性之一。 Python中的for、while循環都有一個可選的else分支(類似if語句和try語句那樣),在循環迭代正常完成之後執行。換句話說,如果我們不是以除正常方式以外的其他任意方式退出循環,那麼else分支將被執行。也就是在循環體內沒有break語句、沒有return語句,或者沒有異常出現。考慮一個簡單的(無用的)例子: Python >>> for i in range(5): ...     print(i) ... else: ...     print('Iterated over everything :)') ... 0 1 2 3 4 Iterated over everything :)     上面的程式碼中,我們在range(5)上迭代並打印每個數字。因為我們讓循環正常完成,所以else分支也被執行,並打印出Iterated over everything :) 。相反,如果我們用break語句終止循環,那麼else分支將不會執行: Python     >>> for i in range(5): ...     if i == 2: ...         break ...     print(i) ... else: ...     print('Iterated over everything :)') ... 0 1 注意,儘管循環所迭代的序列是空的,else分支依然會被執行,畢竟循環仍然是正常完成的。 Python >>> for i in []: ...     print(i) ... else: ...     print('Still iterated over everything (i.e. nothing)') ... Still iterated over everything (i.e. nothing)     同樣不要忘記,以上所有也適應於while…else: Python >>> i = 0