practice1.py
#coding=gbk<br />#這裡使用的Python是最新的3.2 版本,文法和之前的2.x 系列有一定的出入,不過通過協助文檔都有詳細的說明。<br />#將筆記中的內容全部儲存為python 指令碼,執行過的就注釋表,不影響其他指令碼的執行。</p><p>#print('Hello world!')<br />#print(abs(-4))</p><p>#myStr='Hello world!'<br />#print(myStr)</p><p>#print(myStr +'is'+ myStr)</p><p>#使用者輸入一個字元,然後用print 將字元輸出:<br />#import sys<br />#myStr=input('Enter a string:')<br />#print(myStr)</p><p>#使用者輸入一個數字,並進行相關的運算:<br />#num=input('Plz input a number:')<br />#print('The input number is:'+num*2)<br />#沒進行int()轉換,數字按字串處理,*2 即複製2遍<br />#print('The input number is:',int(num)*2)<br />#普通的乘法</p><p>#使用help 查看具體的某個文法的協助<br />#help(input)</p><p>#運算子<br />#Python 中的標準算術運算子以你熟悉的方式工作:+ - * / // % **,加、減、乘、除和取餘都是標準運算子。<br />#Python 有兩種除法運算子,單斜杠用作傳統除法,雙斜杠用作浮點除法(對結果進行四捨五入)。<br />#傳統除法是指如果兩個運算元都是整數的話,它將執行是地板除(取比商小的最大整數),而浮點除法是真正的除法,<br />#不管運算元是什麼類型,浮點除法總是執行真正的除法。<br />#乘方運算子, 雙星號(**)</p><p>#print(9/4)<br />#-->2.25</p><p>#print(9//4)<br />#-->2</p><p>#print(2*3,2**3)<br />#-->6 8</p><p>#print(-1*2+9/4+9//4+2**3)<br />#-->10.25</p><p>#Python 的比較運算:< <= > >= == !=,返回布爾值<br />#print(2<4)<br />#-->True</p><p>#Python 目前支援“不等於”比較子, != .<> 在Python 3.2中 以淘汰<br />#print(2!=4)<br />#print(2<>4)<br />#SyntaxError: invalid syntax</p><p>#Python 也提供了邏輯運算子:and or not<br />#print(2<4 and 2>1)<br />#-->True<br />#print(2>4 or 2<4)<br />#-->True</p><p>#變數和賦值<br />#Python 是用C 語言寫的,所以變數這塊和C 一致。可以是數字,字母, 或底線組成,並且區分大小寫。<br />#Python 是動態類型語言, 也就是說不需要預先聲明變數的類型。 變數的類型和值在賦值那一刻被初始化。<br />#變數賦值通過等號來執行。</p><p>#num1=1.5<br />#num2=num1*2<br />#str1='Dave is DBA!'<br />#print(num1,num2,str1)<br />#-->1.5 3.0 Dave is DBA!</p><p>#Python 中增量賦值<br />#Python 支援增量賦值,也就是運算子和等號合并在一起<br />#num=2<br />#num =num*2<br />#num1=8<br />#num1 *=8<br />#print(num,num1)<br />#-->4 64</p><p>#Python 不支援C 語言中的自增1 和自減1 運算子, 這是因為 + 和 - 也是單目運算子,<br />#Python 會將 --n 解釋為-(-n) 從而得到 n , 同樣 ++n 的結果也是 n.</p><p>#數字<br />#Python 支援五種基本數字類型,其中有三種是整數類型。<br />#int (有符號整數)<br />#long (長整數)<br />#bool (布爾值)<br />#float (浮點值)<br />#complex (複數)</p><p>#字串<br />#Python 中字串被定義為引號之間的字元集合。Python 支援使用成對的單引號或雙引號,<br />#三引號(三個連續的單引號或者雙引號)可以用來包含特殊字元。使用索引運算子( [ ] )和切<br />#片運算子( [ : ] )可以得到子字串。字串有其特有的索引規則:第一個字元的索引是 0,<br />#最後一個字元的索引是 -1<br />#加號( + )用於字串串連運算,星號( * )則用於字串重複。</p><p>#mystr='Dave come from anqing!'<br />#print(mystr[0],mystr[-1],mystr*2,mystr[6:],mystr[6:9])<br />#-->D ! Dave come from anqing!Dave come from anqing! ome from anqing! ome</p><p>#列表和元組<br />#可以將列表和元組當成普通的“數組”,它能儲存任意數量任意類型的Python 對象。和數<br />#組一樣,通過從0 開始的數字索引訪問元素,但是列表和元組可以儲存不同類型的對象。<br />#列表和元組有幾處重要的區別。列表元素用中括弧( [ ])包裹,元素的個數及元素的值可<br />#以改變。元組元素用小括弧(( ))包裹,不可以更改(儘管他們的內容可以)。元組可以看成是<br />#唯讀列表。通過切片運算( [ ] 和 [ : ] )可以得到子集,這一點與字串的使用方法一樣。</p><p>#列表示例<br />#alist=[1,2,3,4,5]<br />#print(alist,alist[1])<br />#-->[1, 2, 3, 4, 5] 2<br />#列表裡的值可以更改,元祖裡的不可以<br />#alist[0]=5<br />#print(alist)<br />#-->[5, 2, 3, 4, 5]</p><p>#元組,元組從1開始統計<br />#atuple=('Dave','is','DBA')<br />#print(atuple,atuple[0],atuple[:2])<br />#-->('Dave', 'is', 'DBA') Dave ('Dave', 'is')</p><p>#字典<br />#字典是Python 中的映射資料類型,工作原理類似Perl 中的關聯陣列或者雜湊表,由鍵-值(key-value)對構成。<br />#幾乎所有類型的Python 對象都可以用作鍵,不過一般還是以數字或者<br />#字串最為常用。值可以是任意類型的Python 對象,字典元素用大括弧({ })包裹。</p><p>#adict={<br /># 'Name':'Dave',<br /># 'Sex':'Man'<br /># }<br />#print(adict)<br />#-->{'Name': 'Dave', 'Sex': 'Man'}</p><p>#向字典裡添加新值,新值會放在最前面<br />#adict['Email']='dvd.dba@gmail.com'<br />#print(adict)<br />#-->{'Email': 'dvd.dba@gmail.com', 'Name': 'Dave', 'Sex': 'Man'}<br />#print(adict.keys())<br />#-->dict_keys(['Email', 'Name', 'Sex'])<br />#<br />#for key in adict:<br /># print(adict[key])<br />#<br />#dvd.dba@gmail.com<br />#Dave<br />#Man</p><p>#if 判斷,<br />#num=input('please input a num:')<br />#if int(num)>100:<br /># print('the num>100')<br />#elif int(num)>50:<br /># print('the num<100 and >50')<br />#else:<br /># print('the num<50')</p><p>#while 迴圈<br />#學C時寫過一個猜數位小遊戲,這裡用Python 重寫一次:<br />#import random<br />#num=random.randint(1, 100)<br />#num2=input('please guess the num:')<br />#while int(num2)!=num:<br /># if int(num2)>num:<br /># num2=input(num2 +'>num,please input again:')<br /># elif int(num2)<num:<br /># num2=input(num2 +'<num,please input again:')<br />#<br />#print('You are right!')<br />#<br />#please guess the num:50<br />#50>num,please input again:2<br />#2<num,please input again:20<br />#20>num,please input again:3<br />#3<num,please input again:4<br />#You are right!</p><p>#for 迴圈和range()內建函數<br />#Python 中的for 迴圈與傳統的for 迴圈(計數器迴圈)不太一樣, 它更象shell 指令碼裡<br />#的foreach 迭代。Python 中的for 接受可迭代對象(例如序列或迭代器)作為其參數,每次<br />#迭代其中一個元素。</p><p>#for i in ['Dave','is','DBA']:<br /># print(i)<br />#<br />#Dave<br />#is<br />#DBA<br />#這樣輸出變成來 3行,print 函數:print([object, ...], *, sep=' ', end='\n', file=sys.stdout)<br />#其預設是\n 作為結束,即換行,可以在print後加end 參數,這樣不換行,使用空格進行區分<br />#for i in ['Dave','is','DBA']:<br /># print(i,end=' ')<br />#-->Dave is DBA </p><p>#for i in range(5):<br /># print(i,end=',')<br />#0,1,2,3,4,</p><p>#str='Dave is DBA'<br />#for i in range(len(str)):<br /># print(str[i],end=',')<br />#D,a,v,e, ,i,s, ,D,B,A,</p><p>#列表解析<br />#可以在一行中使用一個for 迴圈將所有值放到一個列表當中</p><p>#str=[x**2 for x in range(5)]<br />#print(str)<br />#for i in str:<br /># print(i)<br />#<br />#[0, 1, 4, 9, 16] -->用for 迴圈產生了一個列表<br />#0<br />#1<br />#4<br />#9<br />#16 </p><p>#檔案和內建函數open() 、file()<br />#如何開啟檔案<br />#handle = open(file_name, access_mode = 'r')<br />#file_name 變數包含我們希望開啟的檔案的字串名字, access_mode 中 'r' 表示讀取,<br />#'w' 表示寫入, 'a' 表示添加。其它可能用到的標聲還有 '+' 表示讀寫, 'b'表示二進位訪<br />#問. 如果未提供 access_mode , 預設值為 'r'。如果 open() 成功, 一個檔案物件控點會被<br />#返回。所有後續的檔案操作都必須通過此檔案控制代碼進行。當一個檔案對象返回之後, 我們就可<br />#以訪問它的一些方法, 比如 readlines() 和close().</p><p>#這裡我們先寫如檔案,在從檔案中讀取出來<br />#fname='Dave.txt'<br />#fp=open(fname, 'w')<br />#fp.write('Dave is DBA!\n')<br />#fp.write('Dave is writing Python!\n')<br />#fp.write('Dave come from anqing!\n')<br />#fp.close()<br />#<br />#fp=open(fname, 'r')<br />#for Line in fp:<br /># print(Line)<br />#fp.close<br />#--><br />#Dave is DBA!<br />#<br />#Dave is writing Python!<br />#<br />#Dave come from anqing!</p><p>#錯誤和異常<br />#要給你的代碼添加錯誤偵測及異常處理, 只要將它們封裝在 try-except 語句當中。 try<br />#之後的程式碼群組, 就是你打算管理的代碼。 except 之後的程式碼群組, 則是你處理錯誤的代碼。<br />#程式員也可以通過使用 raise 語句故意引發一個異常。</p><p>#try:<br /># filename =input('Enter file name: ')<br /># fobj = open(filename, 'r')<br /># for eachLine in fobj:<br /># print(eachLine)<br /># fobj.close()<br />#except IOError as e:<br /># print('file open error:',e)<br />#--><br />#Enter file name: DBA.txt<br />#file open error: [Errno 2] No such file or directory: 'DBA.txt'</p><p>#函數<br />#類似其它的語言, Python 中的函數使用小括弧( () )調用。函數在調用之前必須先定義。<br />#如果函數中沒有 return 語句, 就會自動返回 None 對象。</p><p>#def plus(x,y):<br /># return(x+y)<br />#<br />#print(plus(3,4))<br />#-->7</p><p>#模組<br />#模組是一種組織形式, 它將彼此有關係的Python 程式碼群組織到一個個獨立檔案當中。<br />#模組可以包含可執行代碼, 函數和類或者這些東西的組合。<br />#當你建立了一個 Python 源檔案,模組的名字就是不帶 .py 尾碼的檔案名稱。一個模組創<br />#建之後, 你可以從另一個模組中使用 import 語句匯入這個模組來使用。<br />#<br />#如何匯入模組<br />#import module_name<br />#如何訪問一個模組函數或訪問一個模組變數<br />#一旦匯入完成, 一個模組的屬性(函數和變數)可以通過熟悉的 .句點屬性標識法訪問。<br />#module.function()<br />#module.variable</p><p>#import sys<br />#print(sys.platform)<br />#print(sys.version)</p><p>#常用的函數<br />#函數 描述<br />#dir([obj]) 顯示對象的屬性,如果沒有提供參數, 則顯示全域變數的名字<br />#help([obj]) 以一種整齊美觀的形式 顯示對象的文檔字串, 如果沒有提供任何參數, 則會進入互動式協助。<br />#int(obj) 將一個對象轉換為整數<br />#len(obj) 返回對象的長度<br />#open(fn, mode) 以 mode('r' = 讀, 'w'= 寫)方式開啟一個檔案名稱為 fn 的檔案<br />#range([[start,]stop[,step]) 返回一個整數列表。起始值為 start, 結束值為 stop - 1; start預設值為 0, step預設值為1。<br />#raw_input(str) 等待使用者輸入一個字串, 可以提供一個可選的參數 str 用作提示資訊。<br />#str(obj) 將一個對象轉換為字串<br />#type(obj) 返回對象的類型(傳回值本身是一個type 對象!)
-------------------------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
Weibo: http://weibo.com/tianlesoftware
Email: dvd.dba@gmail.com
DBA1 群:62697716(滿); DBA2 群:62697977(滿) DBA3 群:62697850(滿)
DBA 超級群:63306533(滿); DBA4 群: 83829929(滿) DBA5群: 142216823(滿)
DBA6 群:158654907(滿) 聊天 群:40132017(滿) 聊天2群:69087192(滿)
--加群需要在備忘說明Oracle資料表空間和資料檔案的關係,否則拒絕申請