Python基本語法總結


對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用於標識當前文件夾是一個包。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM