參考鏈接: Python中的循環技術
在介紹之前我們先來看看計算機的三個根本性基礎:?
1.計算機是執行輸入、運算、輸出的機器?
2.程序是指令和數據的集合?
3.計算機的處理方式有時與人們的思維習慣不同?
(以上是引自《計算機是怎樣跑起來的》)??
? ? 個人認為深入理解這三大原則,對于計算機新技術的入門很有幫助。就拿Python來說吧。如果我們了解了它的輸入、輸出和運算規則,了解了它的指令集和數據結構,進一步了解了它的運算處理方式,那么是不是我們就可以完成一些簡單的程序,實現一些小巧的功能,也就是實現了Python的入門了呢。下面就來簡單的介紹一下Python輸入/輸出、數據類型、條件/循環語句吧。??
一、預備知識??
Python文件以.py為擴展名。??
(1)Python標識符??
? ? 在python中,所有標識符可以包括英文、數字以及下劃線(_),但不能以數字開頭。python中的標識符是區分大小寫的。以下劃線開頭的標識符是有特殊意義的。以單下劃線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用"from xxx import *"而導入;以雙下劃線開頭的(__foo)代表類的私有成員;以雙下劃線開頭和結尾的(__foo__)代表python里特殊方法專用的標識,如__init__()代表類的構造函數。??
(2)Python保留字符??
? ? 下面的列表顯示了在Python中的保留字。這些保留字不能用作常數或變數,或任何其他標識符名稱。所有Python的關鍵字只包含小寫字母。??
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
? and? ?exec? ?not? ?assert? ?finally? ?or? ?break? ?for? ?pass? ?class? ?from? ?print? ?continue? ?global? ?raise? ?def? ?if? ?return? ?del? ?import? ?try? ?elif? ?in? ?while? ?else? ?is? ?with? ?except? ?lambda? ?yield??
??
(3)行和縮進??
? ? 學習Python與其他語言最大的區別就是,Python的代碼塊不使用大括號({})來控制類、函數以及其他邏輯判斷。python最具特色的就是用縮進來寫模塊。縮進的空白數量是可變的,但是所有代碼塊語句必須包含相同的縮進空白數量,這個必須嚴格執行。??
(4)Python引號??
? ? Python接收單引號(' ),雙引號(" ),三引號(''' """)來表示字符串,引號的開始與結束必須的相同類型的。 其中三引號可以由多行組成,編寫多行文本的快捷語法。??
(5)Python注釋??
? ? python中單行注釋采用 #開頭。?
? ? 以 #!開頭的稱為組織行,這行告訴你的Linux/Unix系統當你執行你的程序的時候,它應該運行哪個解釋器。例如:#!/usr/bin/python??
?
二、輸入輸出:?
(1)程序的輸入/輸出?
?
str = input("Enter your input: ");#鍵盤輸入?
print ("Received input is : ", str);#屏幕輸出?
?
(2)文件的輸入/輸出?
?
poem ='''\
Programmingis fun
When thework is done
if youwanna make your work also fun:
? ? use Python!
'''
f =open('poem.txt', 'w') #open for 'w'riting
f.write(poem)? ? ? ? ? ? #write text to file
f.close()? ? ? ? ? ? ? ? ?#close the file
?
f =open('poem.txt')
#if nomode is specified, 'r'ead mode is assumed by default
whileTrue:
? ? line = f.readline()
? ? if len(line) == 0:#Zero length indicatesEOF
? ? ? ? break
? ? print(line),
? ? #Notice comma to avoid automatic newlineadded by Python
f.close()#close the file
?
?
三、數據結構:?
(1) None類型?
? ? ?None表示空對象。如果一個函數沒有顯示的返回一個值,None就被返回。None的bool值為false?
(2) 數值類型?
? ? ?Python有4種數值類型:整數、長整數、浮點數和復數。所有數值類型都是不可變類型。?
? ? ?python不支持自增自減操作符++,--,++i,其實是+(+i)的意思?
? ? ?運算符與表達式:基本上與其它語言相類似,只是有以下幾點不同:?
? ? ?x*y:乘法。2 * 3得到6。'la' * 3得到'lalala'。? ? ? x**y:冪運算,返回 x 的 y 次冪。? ? ? x/y:x 除以 y,4/3得到1(整數的除法得到整數結果)。4.0/3或4/3.0得到1.3333333333333333。? ? ? x//y:取整除。返回商的整數部分。4 // 3.0得到1.0。? ? ? 除法//:地板除在任何時候都會將小數部分舍為0? ? ? -x? 改變x的符號位?
(3) 字符串? ? ? 字符串:單引號(‘)和雙引號(")的作用相同,只能創建單行字符串。轉義符是(\)。?
? ? ?三引號(如:'''或者""")之間的一切都是字符串的內容。?
? ? ?自然字符串:在字符串前加R(或r)指示某些不需要如轉義符那樣的特別處理的字符串,如:print R“Hello\n World”,將直接輸出“Hello\n World”而不會出現換行的情況。?
? ? ?獲得子串: s[i:j],返回s 從i到j(不包括j)之間的子串。若i省略則i=0,若j省略則j=len(s)-1?
? ? ?str() repr() 函數或者向后的引號(`)可以將其他類型的數據轉換為字符串。?
? ? ?Unicode字符串:在字符串前加U(或u)。如 a=u'hello',每個字符用16位來表示 "hello" 'world'會被自動連接為一個字符串"helloworld" ,"s1"u"s2"就會產生u"s1s2"?
? ? ?字符串、Unicode字符串及tuple是不可變的序列。?
(4) 列表和元組(list& tuple)?
? ? ?列表和元組是任意對象的序列,支持的常用操作:?
?
len()
append()
insert(index,aMember)
list[index]=aNewMember?
? ? ? 一個元素的元組:a=(12,)? #注意一定要個額外的逗號!對于tuple中的元素,不可以修改,也不可以添加列表是可變的序列,允許插入,刪除,替換元素等操作,可變序列支持的操作:?
?
s[i]=v
s[i:j]=t? ? # t要是個序列
del s[i]
del s[i:j]?
?
(5)字典?
? ? ? 字典就是一個關聯數組(或稱為哈希表),是一個通過關鍵字索引的對象集合。使用{}來創建一個字典。字典的key是不能修改的對象(比如數字和tuple)。?
?
#!/usr/bin/python
#創建字典
dict ={'Name': 'Zara', 'Age': 7, 'Class': 'First'};
#修改字典元素
dict['Age']= 8; # update existing entry
dict['School']= "DPS School"; # Add new entry
?#訪問輸出字典元素
print("dict['Age']: ", dict['Age']);#訪問字典里的元素
print("dict['School']: ", dict['School']);
#刪除
deldict['Name']; # 刪除鍵是'Name'的條目
dict.clear();? ? ?# 清空詞典所有條目
del dict;?
?
?
四、條件、循環控制語句?
控制流語句:通過使用or,and,not關鍵字可以建立任意的條件表達式?
(1)if-elif-else結構:?
?
if something == 1:? ??
? ? doSomething1()
elif something == 2:? ??
? ? doSomething2()
else:? ??
? ? pass # 表示一個空的塊或者是空的主體,使用pass語句?
?
(2)while-else結構:??
?
while something:? ??
? ? doSomething1()
else:? ??
? ? doSomething2()<strong>
</strong>?
(3)for-else結構:??
for i in range(1, 10, 2):? ?# i 值從 1 到 10,步長為2
? ? print (i)
else:
? ? print ('The for loop is over')?
?
另:break和 continue:用于中斷和繼續循環。(Python 沒有switch-case 語句,可以通過 if 語句配合字典完成同樣的工作)