本文實例講述了Python簡明入門教程。分享給大家供大家參考。具體如下:
一、基本概念
1、數
在Python中有4種類型的數——整數、長整數、浮點數和復數。
(1)2是一個整數的例子。
(2)長整數不過是大一些的整數。
(2)3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這里,52.3E-4表示52.3 * 10-4。
(4)(-5+4j)和(2.3-4.6j)是復數的例子。
2、字符串
(1)使用單引號(')
(2)使用雙引號(")
(3)使用三引號('''或""")
利用三引號,你可以指示一個多行的字符串。你可以在三引號中自由的使用單引號和雙引號。例如:
1
2
3
4
5
|
'''This is a multi-line string. This is the first line. This is the second line. "What's your name?," I asked. He said "Bond, James Bond." ''' |
(4)轉義符
(5)自然字符串
自然字符串通過給字符串加上前綴r或R來指定。例如r"Newlines are indicated by \n"。
3、邏輯行與物理行
一個物理行中使用多于一個邏輯行,需要使用分號(;)來特別地標明這種用法。一個物理行只有一個邏輯行可不用分號
二、控制流
1、if
塊中不用大括號,條件后用分號,對應elif和else
1
2
3
4
5
6
|
if guess = = number: print 'Congratulations, you guessed it.' # New block starts here elif guess < number: print 'No, it is a little higher than that' # Another block else : print 'No, it is a little lower than that' |
2、while
用分號,可搭配else
1
2
3
4
5
6
7
8
9
10
11
12
|
while running: guess = int ( raw_input ( 'Enter an integer : ' )) if guess = = number: print 'Congratulations, you guessed it.' running = False # this causes the while loop to stop elif guess < number: print 'No, it is a little higher than that' else : print 'No, it is a little lower than that' else : print 'The while loop is over.' # Do anything else you want to do here |
3、for
用分號,搭配else
1
2
3
4
|
for i in range ( 1 , 5 ): print i else : print 'The for loop is over' |
4、break和continue
同C語言
三、函數
1、定義與調用
1
2
3
|
def sayHello(): print 'Hello World!' # block belonging to the function sayHello() # call the function |
2、函數形參
類C語言
1
2
3
4
5
|
def printMax(a, b): if a > b: print a, 'is maximum' else : print b, 'is maximum' |
3、局部變量
加global可申明為全局變量
4、默認參數值
1
2
|
def say(message, times = 1 ): print message * times |
5、關鍵參數
如果某個函數有許多參數,而只想指定其中的一部分,那么可以通過命名來為這些參數賦值——這被稱作 關鍵參數 ——使用名字(關鍵字)而不是位置來給函數指定實參。這樣做有兩個 優勢 ——一,由于不必擔心參數的順序,使用函數變得更加簡單了。二、假設其他參數都有默認值,可以只給我們想要的那些參數賦值。
1
2
3
4
5
|
def func(a, b = 5 , c = 10 ): print 'a is' , a, 'and b is' , b, 'and c is' , c func( 3 , 7 ) func( 25 , c = 24 ) func(c = 50 , a = 100 ) |
6、return
四、模塊
1、使用模塊
1
2
3
4
|
import sys print 'The command line arguments are:' for i in sys.argv: print i |
如果想要直接輸入argv變量到程序中(避免在每次使用它時打sys.),可以使用from sys import argv語句
2、dir()函數
可以使用內建的dir函數來列出模塊定義的標識符。標識符有函數、類和變量。
五、數據結構
1、列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
shoplist = [ 'apple' , 'mango' , 'carrot' , 'banana' ] print 'I have' , len (shoplist), 'items to purchase.' print 'These items are:' , # Notice the comma at end of the line for item in shoplist: print item, print '\nI also have to buy rice.' shoplist.append( 'rice' ) print 'My shopping list is now' , shoplist print 'I will sort my list now' shoplist.sort() print 'Sorted shopping list is' , shoplist print 'The first item I will buy is' , shoplist[ 0 ] olditem = shoplist[ 0 ] del shoplist[ 0 ] print 'I bought the' , olditem print 'My shopping list is now' , shoplist |
2、元組
元組和列表十分類似,只不過元組和字符串一樣是不可變的即你不能修改元組。
1
2
3
4
5
6
7
|
zoo = ( 'wolf' , 'elephant' , 'penguin' ) print 'Number of animals in the zoo is' , len (zoo) new_zoo = ( 'monkey' , 'dolphin' , zoo) print 'Number of animals in the new zoo is' , len (new_zoo) print 'All animals in new zoo are' , new_zoo print 'Animals brought from old zoo are' , new_zoo[ 2 ] print 'Last animal brought from old zoo is' , new_zoo[ 2 ][ 2 ] |
像一棵樹
元組與打印
1
2
3
4
|
age = 22 name = 'Swaroop' print '%s is %d years old' % (name, age) print 'Why is %s playing with that python?' % name |
3、字典
類似哈希
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
} print "Swaroop's address is %s" % ab['Swaroop'] # Adding a key/value pair # Deleting a key/value pair del ab[ 'Spammer' ] print '\nThere are %d contacts in the address-book\n' % len (ab) for name, address in ab.items(): print 'Contact %s at %s' % (name, address) if 'Guido' in ab: # OR ab.has_key('Guido') print "\nGuido's address is %s" % ab['Guido'] |
4、序列
列表、元組和字符串都是序列。序列的兩個主要特點是索引操作符和切片操作符。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
shoplist = [ 'apple' , 'mango' , 'carrot' , 'banana' ] # Indexing or 'Subscription' operation print 'Item 0 is' , shoplist[ 0 ] print 'Item 1 is' , shoplist[ 1 ] print 'Item -1 is' , shoplist[ - 1 ] print 'Item -2 is' , shoplist[ - 2 ] # Slicing on a list print 'Item 1 to 3 is' , shoplist[ 1 : 3 ] print 'Item 2 to end is' , shoplist[ 2 :] print 'Item 1 to -1 is' , shoplist[ 1 : - 1 ] print 'Item start to end is' , shoplist[:] # Slicing on a string name = 'swaroop' print 'characters 1 to 3 is' , name[ 1 : 3 ] print 'characters 2 to end is' , name[ 2 :] print 'characters 1 to -1 is' , name[ 1 : - 1 ] print 'characters start to end is' , name[:] |
5、參考
當你創建一個對象并給它賦一個變量的時候,這個變量僅僅參考那個對象,而不是表示這個對象本身!也就是說,變量名指向你計算機中存儲那個對象的內存。這被稱作名稱到對象的綁定。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
print 'Simple Assignment' shoplist = [ 'apple' , 'mango' , 'carrot' , 'banana' ] mylist = shoplist # mylist is just another name pointing to the same object! del shoplist[ 0 ] print 'shoplist is' , shoplist print 'mylist is' , mylist # notice that both shoplist and mylist both print the same list without # the 'apple' confirming that they point to the same object print 'Copy by making a full slice' mylist = shoplist[:] # make a copy by doing a full slice del mylist[ 0 ] # remove first item print 'shoplist is' , shoplist print 'mylist is' , mylist # notice that now the two lists are different |
6、字符串
1
2
3
4
5
6
7
8
9
10
|
name = 'Swaroop' # This is a string object if name.startswith( 'Swa' ): print 'Yes, the string starts with "Swa"' if 'a' in name: print 'Yes, it contains the string "a"' if name.find( 'war' ) ! = - 1 : print 'Yes, it contains the string "war"' delimiter = '_*_' mylist = [ 'Brazil' , 'Russia' , 'India' , 'China' ] print delimiter.join(mylist) / / 用delimiter來連接mylist的字符 |
六、面向對象的編程
1、self
Python中的self等價于C++中的self指針和Java、C#中的this參考
2、創建類
1
2
3
4
|
class Person: pass # An empty block p = Person() print p |
3、對象的方法
1
2
3
4
5
|
class Person: def sayHi( self ): print 'Hello, how are you?' p = Person() p.sayHi() |
4、初始化
1
2
3
4
5
6
7
|
class Person: def __init__( self , name): self .name = name def sayHi( self ): print 'Hello, my name is' , self .name p = Person( 'Swaroop' ) p.sayHi() |
5、類與對象的方法
類的變量 由一個類的所有對象(實例)共享使用。只有一個類變量的拷貝,所以當某個對象對類的變量做了改動的時候,這個改動會反映到所有其他的實例上。
對象的變量 由類的每個對象/實例擁有。因此每個對象有自己對這個域的一份拷貝,即它們不是共享的,在同一個類的不同實例中,雖然對象的變量有相同的名稱,但是是互不相關的。
1
2
3
4
5
6
7
8
9
10
|
class Person: '''Represents a person.''' population = 0 def __init__( self , name): '''Initializes the person's data.''' self .name = name print '(Initializing %s)' % self .name # When this person is created, he/she # adds to the population Person.population + = 1 |
population屬于Person類,因此是一個類的變量。name變量屬于對象(它使用self賦值)因此是對象的變量。
6、繼承
1
2
3
4
5
6
7
8
9
|
class SchoolMember: '''Represents any school member.''' def __init__( self , name, age): self .name = name class Teacher(SchoolMember): '''Represents a teacher.''' def __init__( self , name, age, salary): SchoolMember.__init__( self , name, age) self .salary = salary |
七、輸入輸出
1、文件
1
2
3
4
5
6
7
8
9
10
11
12
|
f = file ( 'poem.txt' , 'w' ) # open for 'w'riting f.write(poem) # write text to file f.close() # close the file f = file ( 'poem.txt' ) # if no mode is specified, 'r'ead mode is assumed by default while True : line = f.readline() if len (line) = = 0 : # Zero length indicates EOF break print line, # Notice comma to avoid automatic newline added by Python f.close() # close the file |
2、存儲器
持久性
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import cPickle as p #import pickle as p shoplistfile = 'shoplist.data' # the name of the file where we will store the object shoplist = [ 'apple' , 'mango' , 'carrot' ] # Write to the file f = file (shoplistfile, 'w' ) p.dump(shoplist, f) # dump the object to a file f.close() del shoplist # remove the shoplist # Read back from the storage f = file (shoplistfile) storedlist = p.load(f) print storedlist |
3、控制臺輸入
輸入字符串 nID = raw_input("Input your id plz")
輸入整數 nAge = int(raw_input("input your age plz:\n"))
輸入浮點型 fWeight = float(raw_input("input your weight\n"))
輸入16進制數據 nHex = int(raw_input('input hex value(like 0x20):\n'),16)
輸入8進制數據 nOct = int(raw_input('input oct value(like 020):\n'),8)
八、異常
1、try..except
1
2
3
4
5
6
7
8
9
10
|
import sys try : s = raw_input ( 'Enter something --> ' ) except EOFError: print '\nWhy did you do an EOF on me?' sys.exit() # exit the program except : print '\nSome error/exception occurred.' # here, we are not exiting the program print 'Done' |
2、引發異常
使用raise語句引發異常。你還得指明錯誤/異常的名稱和伴隨異常 觸發的 異常對象。你可以引發的錯誤或異常應該分別是一個Error或Exception類的直接或間接導出類。
1
2
3
4
5
6
7
|
class ShortInputException(Exception): '''A user-defined exception class.''' def __init__( self , length, atleast): Exception.__init__( self ) self .length = length self .atleast = atleast raise ShortInputException( len (s), 3 ) |
3、try..finnally
1
2
3
4
5
6
7
8
9
10
11
12
|
import time try : f = file ( 'poem.txt' ) while True : # our usual file-reading idiom line = f.readline() if len (line) = = 0 : break time.sleep( 2 ) print line, finally : f.close() print 'Cleaning up...closed the file' |
九、Python標準庫
1、sys庫
sys模塊包含系統對應的功能。sys.argv列表,它包含命令行參數。
2、os庫
os.name字符串指示你正在使用的平臺。比如對于Windows,它是'nt',而對于Linux/Unix用戶,它是'posix'。
os.getcwd()函數得到當前工作目錄,即當前Python腳本工作的目錄路徑。
os.getenv()和os.putenv()函數分別用來讀取和設置環境變量。
os.listdir()返回指定目錄下的所有文件和目錄名。
os.remove()函數用來刪除一個文件。
os.system()函數用來運行shell命令。
os.linesep字符串給出當前平臺使用的行終止符。例如,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。
os.path.split()函數返回一個路徑的目錄名和文件名。
>>> os.path.split('/home/swaroop/byte/code/poem.txt')
('/home/swaroop/byte/code', 'poem.txt')
os.path.isfile()和os.path.isdir()函數分別檢驗給出的路徑是一個文件還是目錄。類似地,os.path.existe()函數用來檢驗給出的路徑是否真地存在。
希望本文所述對大家的Python程序設計有所幫助。