學習 python 之路

clamshine發表於2016-12-01
abs(-1)  --絕對值        
1
>>> print 'with %s say %s' % (a,(b+' ')*3)
with king say hi hi hi 

vim test.py
x=raw_input('Enter x: ')
if x>0:
        print '"x" must be 0!'
  輸入x的值來返回結果其中if語句是不需要() 的  raw_input()是一個內建函式,她是 最容易從使用者那裡獲取到值得方式
 x=raw_input('Enter x: ')
if x>0:
        print 'double x: %d' % (int(x)*2)   兩倍值       也可以elif 
while  迴圈              
s=0
while s<3:
        print 'while %d' % (s)
        s+=1
for迴圈                                
a=['a','b','c','d']
for s in a:
        print 'Have this options: %s' % (s)

a='funny'
for s in a:
        print s
迴圈索引 迴圈元素             
a='funny'
for s,c in enumerate(a):                            for s in range(len(a)):   
        print c ,'(%d)' % s                                 print a[s],'(%d)' % s

列表解析 從for裡傳值到列表中                                     
squared=[x**2 for x in range(4)]
for i in squared:
     print i
檔案開啟讀寫 open(a,b) a=filename b= 'r'只讀'w'寫‘+’讀寫'b'二進位制訪問   -在print使用,抑制文字中生成的換行不然會有空白行                                           
filename=raw_input('Enter you file name: ')
handle=open(filename,'r')
for i in handle:
  print i,                                                                                                  
handle.close()


try except
try 管理程式碼 except出現錯誤後的執行程式碼

def ff(a):
        return (a+a)

print ff(1)

python裡面的類的定義與呼叫:  其中object不能大寫 不然就無定義 __init__是特殊方法有開始和結束有  兩個下劃無論是否呼叫都回執行,預設是什麼也不
做  self是this識別符號 是類自身的引用                                                                                                                        

                                  
#!/usr/local/bin/python
class TestClass(object):
        version=0.1
        def __init__(self,nm='Sunny'):
                self.name=nm
                print 'create a instance for ', nm
        def showname(self):
                print 'your name: ', self.name
                print 'My name is',self.__class__.__name__
        def showver(self):
                print self.version
        def addME2ME(self,x):
                return x+x
fool=TestClass()
test=fool.showname()
test2=fool.showver()
test3=fool.addME2ME(2)
print test3
----------------------------------
[root@puppet pyy]# python file.py
create a instance for  Sunny
your name:  Sunny
My name is TestClass
0.1
4
dir顯示屬性           不加引數顯示全部   標籤名字                                         
>>> dir(1)
['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__', '__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate', 'denominator', 'imag', 'numerator', 'real']
>>> dir('a')
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'a', 'aa', 'ad', 'ap', 'b', 'foo', 'py', 'rr', 'squared', 'sys', 'th', 'user', 'x']

 type返回物件型別     
>>> type (a)



練習:
     自身輸出是存在單引號  print是 字元輸出                                   
  >>> a="aa"     
>>> a
'aa'
>>> print a
aa
>>> a='aa'
>>> a
'aa'
>>> print a
aa

用while或者for 做迴圈    從0-10   要使用range內建函式                                                 
a=0
while a<11:
        print a
        a+=1
b=[0,1,2,3,4,5,6,7,8,9,10]
for i in range(len(b)):
        print b[i]
 
輸入數值 判斷正負零             
a=raw_input('Enter a number:')
if int(a)==0:
   print "zero"
elif int(a)<0:
   print "fushu"
else :  
   print "zhenshu"

滿足5就返回 否則就一直讓客戶輸入                   
b=True
while b:
        a=raw_input('Enter 1-100 number: ')
        if int(a)==5:
                b=False
        else:
                b=True
1為和 2 為平均 3 退出       
print "Please Enter option"
print "1 will output sum"
print "2 will output avr"
print "3 exit "
b=raw_input('Enter a option:')
a=[1,1,1,1,1]
c=0
d=True
while d:
        if int(b)==1:
                for i in range(len(a)):
                        c=a[i]+c
                print c
                d=False
        elif int(b)==2:
                for i in range(len(a)):
                        c=a[i]+c
                v=float(c/5)
                print v
                d=False
        elif int(b)==3:
                d=False

3 章    
                 
#!/usr/local/bin/python
"this is module"
import sys
import os
debug = True
class Fooclass(object):
    "Foo class"
    pass
def test():
    "function"
    foo = Fooclass()
if debug:
    print 'ran test'
if __name__ == '__main__':
    test()

    沒弄懂什麼 叫做一個模組的而不是執行      * 指你只想執行一個程式碼檔案裡面的一個模組  可是它的主程式部分無論你是匯入它的模組還是執行它的程式碼檔案,它一定會執行的,所以為了解決這個問題就有了__name__
                                                                                                                                                             
模組被匯入時 __name__的值為名字
模組被執行時__name__的值為“__main__”                                                       


寫程式碼要分塊寫 可以多次利用 是和別人合作來的 不是通篇一個獨立的檔案
                                                                  
所以在主程式裡寫測試程式碼   這樣在直接執行的時候才執行      匯入不執行                                                   

import os


類   #!/usr/local/bin/python


'makeTextFile.py -- create test file '


import os
ls=os.linesep


#get filename
fname = raw_input('Enter you file name:')
while True:
        if os.path.exists(fname):                                                                                                    檢測程式碼的函式                 
                print "ERROR:'%s' already exists" % fname
                break
        else:
#get file conenett lines
                all=[]                                              
                print "\nEnter lines ('.' by itself to quit .)\n"
##loop until user terminates input
                while True:
                        entry = raw_input('>')
                        if entry == '.':
                                break
                        else:
                                all.append(entry)                                                                                                               
#write line to file with proper line-ending
                                fobj = open(fname,'w')
                                fobj.writelines(['%s%s' % (x,ls)for x in all])
                                fobj.close()
                                print 'DONE!'
似於os.linesep要直譯器做兩次查詢 查詢一次模組 查詢一次變數
所以設定本地變數能夠 提高查詢速度       以上是          新建一個檔案 然後直接輸入字元                                                                    
append 用法: 行終止  類似於\n \r                     
writelines 用法:      傳遞的 可以是字元列表                 

以下是開啟檔案每行輸出                                        
#!/usr/local/bin/python
'readTextFile.py -- read and display text file'
#get filename
fname = raw_input('Enter filename:')
#attempt to open file for reding
try:
        bj = open(fname, 'r')
except IOError,e:
        print "***file open error:",e
else:
#dispaly contents to the screen
        for eachLine in bj :
                print eachLine,
        bj.close()
其實還不是很懂except的用法
try 檢測錯誤程式碼except報錯之後處理方式else無錯誤執行方案   後面那個print的都好是為了解決每行的行結束符                                                                                          
   os.path.exists()和異常處理,一般是用前者 前者返回兩個值是or不是
  os.linesep 當前平臺使用的行終止符                        
3 練習

為什麼python不需要宣告變數 不用定義函式返回值型別

例如c 實現開闢一個空間然後把資料拿去到空間內

python則是以資料為中心 先把資料存貯到記憶體中然後再去引用

避免使用雙下劃線
  特殊方法
一行可以書寫多個語句  ,  一行也可以分為多個語句來寫 ''' / ( 等
x=1 y=1 z=1
字串物件strip()方法
 合併檔案選擇建立還是顯示
新增新功能    允許使用者編輯一個存在的檔案   GUI     工具包或者基於螢幕編輯模組  curses模組    允許使用者儲存他的修改 或者取消他的修  改  保證檔案安全性要關閉
                     
                                                                                                                                                                                                                                      
                  
                                                          
                                                  
                                                                                                                                     
                                                       
                                                                     





















































































                                                                                    

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30629069/viewspace-2129466/,如需轉載,請註明出處,否則將追究法律責任。

相關文章