對Python的基本知識進行了重溫和總結。(省略和C++相近的以及深刻瞭解的內容) 1.一般用反斜杠 / 將Python的一行語句分為多行顯示 2.raw_input 輸入內容 遇見回車終止並跳出 3.數據類型之List -- 列表 個人理解類似C++中的數組 4.數據類型之 Tuple -- 元組 ...
對Python的基本知識進行了重溫和總結。(省略和C++相近的以及深刻瞭解的內容)
1.一般用反斜杠 / 將Python的一行語句分為多行顯示
total = item_one + \ item_two + \ item_three
2.raw_input 輸入內容 遇見回車終止並跳出
raw_input("\n\nPress the enter key to exit.")
3.數據類型之List -- 列表
個人理解類似C++中的數組
list = [ 'Ma', 786 , 2.23, 'john', 70.2 ] tinylist = [123, 'john'] print list # 輸出完整列表 print list[0] # 輸出列表的第一個元素 print list[1:3] # 輸出第二個至第三個元素 print list[2:] # 輸出從第三個開始至列表末尾的所有元素 print tinylist * 2 # 輸出列表兩次 print list + tinylist # 列印組合的列表
4.數據類型之 Tuple -- 元組
相當於一個只讀的List
tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 ) tinytuple = (123, 'john') print tuple # 輸出完整元組 print tuple[0] # 輸出元組的第一個元素 print tuple[1:3] # 輸出第二個至第三個的元素 print tuple[2:] # 輸出從第三個開始至列表末尾的所有元素 print tinytuple * 2 # 輸出元組兩次 print tuple + tinytuple # 列印組合的元組
5.數據類型之Dictionary -- 字典
dict = {} dict['one'] = "This is one" dict[2] = "This is two" tinydict = {'name': 'john','code':6734, 'dept': 'sales'} print dict['one'] # 輸出鍵為'one' 的值 print dict[2] # 輸出鍵為 2 的值 print tinydict # 輸出完整的字典 print tinydict.keys() # 輸出所有鍵 print tinydict.values() # 輸出所有值
6.判斷數據類型 之 type 與 isinstance
>>> class A: ... pass ... >>> class B(A): ... pass ... >>> isinstance(A(), A) True >>> type(A()) == A False >>> isinstance(B(), A) True >>> type(B()) == A False
區別就是:
type()不會認為子類是一種父類類型。
isinstance()會認為子類是一種父類類型。
7.邏輯運算符
x and y -- x為False , 返回False,反之,返回y
x or y -- x非零,返回x,否則返回y
not x -- x為True,返回False,x為False,返回True
8.成員運算符
in 如果在指定的序列中找到值返回 True,否則返回 False。
not in 如果在指定的序列中沒有找到值返回 True,否則返回 False。
9.身份運算符
is -- is 是判斷兩個標識符是不是引用自一個對象
is not -- is not 是判斷兩個標識符是不是引用自不同對象
10.條件語句(if)
if 判斷條件1: 執行語句1…… elif 判斷條件2: 執行語句2…… elif 判斷條件3: 執行語句3…… else: 執行語句4……
11.迴圈之while
count = 0 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!"
12.迴圈之for
for letter in 'Python': # 第一個實例 print '當前字母 :', letter fruits = ['banana', 'apple', 'mango'] for fruit in fruits: # 第二個實例 print '當前水果 :', fruit print "Good bye!"
13.迴圈嵌套
嵌套迴圈求出100以內的素數
i = 2 while(i < 100): j = 2 while(j <= (i/j)): if not(i%j): break j = j + 1 if (j > i/j) : print i, " 是素數" i = i + 1 print "Good bye!"
14.Python字元串的三引號
python中三引號可以將複雜的字元串進行複製:
python三引號允許一個字元串跨多行,字元串中可以包含換行符、製表符以及其他特殊字元。
三引號的語法是一對連續的單引號或者雙引號(通常都是成對的用)。
15.關於Python中 Unicode 和 ASCII
電腦只能處理數字,如果要處理文本,就必須先把文本轉換為數字才能處理。Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。Unicode標準也在不斷發展,但最常用的是用兩個位元組表示一個字元(如果要用到非常偏僻的字元,就需要4個位元組)。現代操作系統和大多數編程語言都直接支持Unicode。
ASCII編碼和Unicode編碼的區別:
ASCII編碼是1個位元組,而Unicode編碼通常是2個位元組,舉例如下。
字母 A 用ASCII編碼是十進位的65,二進位的01000001;
字元 0 用ASCII編碼是十進位的48,二進位的00110000,註意字元 '0' 和整數
0 是不同的;
漢字 中 已經超出了ASCII編碼的範圍,用Unicode編碼是十進位的20013,二進位的01001110 00101101。
如果把ASCII編碼的 A 用Unicode編碼,只需要在前面補0就可以,因此, A 的Unicode編碼是00000000 01000001。
16.datetime模塊獲取時間
import datetime i = datetime.datetime.now() print ("當前的日期和時間是 %s" % i) print ("ISO格式的日期和時間是 %s" % i.isoformat() ) print ("當前的年份是 %s" %i.year) print ("當前的月份是 %s" %i.month) print ("當前的日期是 %s" %i.day) print ("dd/mm/yyyy 格式是 %s/%s/%s" % (i.day, i.month, i.year) ) print ("當前小時是 %s" %i.hour) print ("當前分鐘是 %s" %i.minute) print ("當前秒是 %s" %i.second)
17.Python函數
函數參數的說明:
在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。
-
不可變類型:變數賦值 a=5 後再賦值 a=10,這裡實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變a的值,相當於新生成了a。
-
可變類型:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。
python 函數的參數傳遞:
-
不可變類型:類似 c++ 的值傳遞,如 整數、字元串、元組。如fun(a),傳遞的只是a的值,沒有影響a對象本身。比如在 fun(a)內部修改 a 的值,只是修改另一個複製的對象,不會影響 a 本身。
-
可變類型:類似 c++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後fun外部的la也會受影響
lamda匿名函數:只包含一個語句
# 可寫函數說明 sum = lambda arg1, arg2: arg1 + arg2; # 調用sum函數 print "相加後的值為 : ", sum( 10, 20 ) print "相加後的值為 : ", sum( 20, 20 )
18.變數的作用域
定義在函數內部的變數擁有一個局部作用域,定義在函數外的擁有全局作用域。
局部變數只能在其被聲明的函數內部訪問,而全局變數可以在整個程式範圍內訪問。調用函數時,所有在函數內聲明的變數名稱都將被加入到作用域中。如下實例:
total = 0; # 這是一個全局變數 # 可寫函數說明 def sum( arg1, arg2 ): #返回2個參數的和." total = arg1 + arg2; # total在這裡是局部變數. print "函數內是局部變數 : ", total return total; #調用sum函數 sum( 10, 20 ); print "函數外是全局變數 : ", total
結果 局部變數為 30 全局變數為0
## 全局變數想作用於函數內,需加 global ##
19.導入模塊相關
當你導入一個模塊,Python 解析器對模塊位置的搜索順序是:
1、當前目錄
2、如果不在當前目錄,Python 則搜索在 shell 變數 PYTHONPATH 下的每個目錄。
3、如果都找不到,Python會察看預設路徑。UNIX下,預設路徑一般為/usr/local/lib/python/。
模塊搜索路徑存儲在 system 模塊的 sys.path 變數中。變數里包含當前目錄,PYTHONPATH和由安裝過程決定的預設目錄。
20.包
包是一個分層次的文件目錄結構,它定義了一個由模塊及子包,和子包下的子包等組成的 Python 的應用環境。
簡單來說,包就是文件夾,但該文件夾下必須存在 __init__.py 文件, 該文件的內容可以為空。__int__.py用於標識當前文件夾是一個包。