1. 程式人生 > >Python 基礎語法(一)

Python 基礎語法(一)

Python的特點

  1. 簡單

    Python是一種代表簡單思想的語言。

  2. 易學

    Python有極其簡單的語法。

  3. 免費、開源

    Python是FLOSS(自由/開放原始碼軟體)之一。

  4. 高層語言

    使用Python編寫程式時無需考慮如何管理程式使用的記憶體一類的底層細節。

  5. 可移植性

    Python已被移植到很多平臺,這些平臺包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、

  BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、

  Windows CE甚至還有PocketPC。

  6. 解釋性

    可以直接從原始碼執行。在計算機內部,python直譯器把原始碼轉換為位元組碼的中間形式,然後再把它翻譯成計算機使用的機器語言。

  7. 面向物件

    Python既支援面向過程程式設計也支援面向物件程式設計。

  8. 可擴充套件性

    部分程式可以使用其他語言編寫,如c/c++。

  9. 可嵌入型

    可以把Python嵌入到c/c++程式中,從而提供指令碼功能。

  10. 豐富的庫

    Python標準庫確實很龐大。它可以幫助你處理各種工作,包括正則表示式、文件生成、單元測試、執行緒、資料庫、網頁瀏覽器、CGI、FTP、

  電子郵件、XML、XML-RPC、HTML、WAV檔案、密碼系統、GUI(圖形使用者介面)、Tk和其他與系統有關的操作。

---------------分割線------------------------以下是Python的基本語法---------------------------------------------------------

一、基本概念

  1. python中數有四種類型:整數、長整數、浮點數和複數。

  • 整數, 如 1
  • 長整數 是比較大的整數
  • 浮點數 如 1.23、3E-2
  • 複數 如 1 + 2j、 1.1 + 2.2j

  2. 字串(字元的序列)

  • python中單引號和雙引號使用完全相同。
  • 使用三引號('''或""")可以指定一個多行字串。
  • 轉義符 '\'
  • 自然字串, 通過在字串前加r或R。 如 r"this is a line with \n" 則\n會顯示,並不是換行。
  • python允許處理unicode字串,加字首u或U, 如 u"this is an unicode string"。
  • 字串是不可變的。
  • 按字面意義級聯字串,如"this " "is " "string"會被自動轉換為this is string。

  3. 識別符號的命名

  • 第一個字元必須是字母表中字母或下劃線'_'。
  • 識別符號的其他的部分有字母、數字和下劃線組成。
  • 識別符號對大小寫敏感。

  4. 物件

    python程式中用到的任何“東西”都成為“物件”。

  5. 邏輯行和物理行

    物理行是我們在編寫程式時看到的,邏輯行則是python看到的。

    python中分號;標識一個邏輯行的結束,但是實際中一般每個物理行只寫一個邏輯行,可以避免使用分號。

    多個物理行中可以寫一個邏輯行,如下:

s = "peter is \
writing this article"

    上面\的使用被稱為‘明確的行連線’, 又如:

print \
"peter"

  6. 縮排

    空白在python是非常重要的,行首的空白是最重要的,又稱為縮排。行首的空白(空格和製表符)用來決定邏輯行的縮排層次,從而決定語句

  分組。這意味著同一層次的語句必須有相同的縮排,每一組這樣的語句稱為一個塊。

  注意:不要混合使用空格和製表符來縮排,因為在跨越不同的平臺時無法正常工作。

二、運算子與表示式

  1. 運算子與其用法

運算子 名稱 說明 例子
+ 兩個物件相加 3 + 5得到8。'a' + 'b'得到'ab'。
- 得到負數或是一個數減去另一個數 -5.2得到一個負數。50 - 24得到26。
* 兩個數相乘或是返回一個被重複若干次的字串 2 * 3得到6。'la' * 3得到'lalala'。
**

返回x的y次冪

3 ** 4得到81(即3 * 3 * 3 * 3)
/ x除以y 4/3得到1(整數的除法得到整數結果)。4.0/3或4/3.0得到1.3333333333333333
// 取整除 返回商的整數部分 4 // 3.0得到1.0
% 取模 返回除法的餘數 8%3得到2。-25.5%2.25得到1.5
<< 左移 把一個數的位元向左移一定數目(每個數在記憶體中都表示為位元或二進位制數字,即0和1) 2 << 2得到8。——2按位元表示為10
>> 右移 把一個數的位元向右移一定數目 11 >> 1得到5。——11按位元表示為1011,向右移動1位元後得到101,即十進位制的5。
& 按位與 數的按位與 5 & 3得到1。
| 按位或 數的按位或 5 | 3得到7。
^ 按位異或 數的按位異或 5 ^ 3得到6
~ 按位翻轉 x的按位翻轉是-(x+1) ~5得到6。
< 小於 返回x是否小於y。所有比較運算子返回1表示真,返回0表示假。這分別與特殊的變數True和False等價。注意,這些變數名的大寫。 5 < 3返回0(即False)而3 < 5返回1(即True)。比較可以被任意連線:3 < 5 < 7返回True。
> 大於 返回x是否大於y 5 > 3返回True。如果兩個運算元都是數字,它們首先被轉換為一個共同的型別。否則,它總是返回False。
<= 小於等於 返回x是否小於等於y x = 3; y = 6; x <= y返回True。
>= 大於等於 返回x是否大於等於y x = 4; y = 3; x >= y返回True。
== 等於 比較物件是否相等 x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。
!= 不等於 比較兩個物件是否不相等 x = 2; y = 3; x != y返回True。
not 布林“非” 如果x為True,返回False。如果x為False,它返回True。 x = True; not y返回False。
and 布林“與” 如果x為False,x and y返回False,否則它返回y的計算值。 x = False; y = True; x and y,由於x是False,返回False。在這裡,Python不會計算y,因為它知道這個表示式的值肯定是False(因為x是False)。這個現象稱為短路計算。
or 布林“或” 如果x是True,它返回True,否則它返回y的計算值。 x = True; y = False; x or y返回True。短路計算在這裡也適用。

   2. 運算子優先順序(從低到高)

運算子 描述
lambda Lambda表示式
or 布林“或”
and 布林“與”
not x 布林“非”
in,not in 成員測試
is,is not 同一性測試
<,<=,>,>=,!=,== 比較
| 按位或
^ 按位異或
& 按位與
<<,>> 移位
+,- 加法與減法
*,/,% 乘法、除法與取餘
+x,-x 正負號
~x 按位翻轉
** 指數
x.attribute 屬性參考
x[index] 下標
x[index:index] 定址段
f(arguments...) 函式呼叫
(experession,...) 繫結或元組顯示
[expression,...] 列表顯示
{key:datum,...} 字典顯示
'expression,...' 字串轉換

   3. python 控制檯輸出 使用print

print "abc"    #列印abc並換行print "abc%s" % "d"    #列印abcdprint "abc%sef%s" % ("d", "g")    #列印abcdefg

三、控制流

  1. if 語句

複製程式碼
i = 10
n = int(raw_input("enter a number:"))

if n == i:
    print "equal"
elif n < i:
    print "lower"
else:
    print "higher"
複製程式碼

   2. while語句

while True:
    pass
else:
    pass
#else語句可選,當while為False時,else語句被執行。 pass是空語句。

  3. for 迴圈 for..in

for i in range(0, 5):
    print i
else:
    pass
# 列印0到4

  注:當for迴圈結束後執行else語句;

    range(a, b)返回一個序列,從a開始到b為止,但不包括b,range預設步長為1,可以指定步長,range(0,10,2);

  4. break語句

    終止迴圈語句,如果從for或while中終止,任何對應迴圈的else將執行。

  5. continue語句

    continue語句用來調過當前迴圈的剩餘語句,然後繼續下一輪迴圈。

四、函式

  函式通過def定義。def關鍵字後跟函式的識別符號名稱,然後跟一對圓括號,括號之內可以包含一些變數名,該行以冒號結尾;接下來是一塊語句,即函式體。

def sumOf(a, b):
    return a + b

  1. 函式形參

    函式中的引數名稱為‘形參’,呼叫函式時傳遞的值為‘實參’

  2. 區域性變數

    在函式內定義的變數與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是區域性的。這稱為變數的作用域。

    global語句, 為定義在函式外的變數賦值時使用global語句。

複製程式碼
def func():
    global x
    print "x is ", x
    x = 1

x = 3
func()
print x

#3
#1 
複製程式碼

  3. 預設引數

    通過使用預設引數可以使函式的一些引數是‘可選的’。

def say(msg, times =  1):
    print msg * times

say("peter")
say("peter", 3)

    注意:只有在形參表末尾的那些引數可以有預設引數值,即不能在宣告函式形參的時候,先宣告有預設值的形參而後宣告沒有預設值的形參,只是因為賦給形參的值是根據位置而賦值的。

  4. 關鍵引數

    如果某個函式有很多引數,而現在只想指定其中的部分,那麼可以通過命名為這些引數賦值(稱為‘關鍵引數’)。

    優點:不必擔心引數的順序,使函式變的更加簡單;假設其他引數都有預設值,可以只給我們想要的那些引數賦值。

複製程式碼
def func(a, b=2, c=3):
    print "a is %s, b is %s, c is %s" % (a, b, c)

func(1) #a is 1, b is 2, c is 3func(1, 5) #a is 1, b is 5, c is 3func(1, c = 10) #a is 1, b is 2, c is 10func(c = 20, a = 30) #a is 30, b is 2, c is 20
複製程式碼

  5. return 語句

    return語句用來從一個函式返回,即跳出函式。可從函式返回一個值。

    沒有返回值的return語句等價於return None。None表示沒有任何東西的特殊型別。

  6. DocStrings (文件字串)

複製程式碼
def func():
    '''This is self-defined function

Do nothing'''
    pass

print func.__doc__

#This is self-defined function
#
#Do nothing
複製程式碼

五、模組

  模組就是一個包含了所有你定義的函式和變數的檔案,模組必須以.py為副檔名。模組可以從其他程式中‘輸入’(import)以便利用它的功能。

  在python程式中匯入其他模組使用'import', 所匯入的模組必須在sys.path所列的目錄中,因為sys.path第一個字串是空串''即當前目錄,所以程式中可匯入當前目錄的模組。

   1. 位元組編譯的.pyc檔案

    匯入模組比較費時,python做了優化,以便匯入模組更快些。一種方法是建立位元組編譯的檔案,這些檔案以.pyc為副檔名。

    pyc是一種二進位制檔案,是py檔案經編譯後產生的一種byte code,而且是跨平臺的(平臺無關)位元組碼,是有python虛擬機器執行的,類似於

  java或.net虛擬機器的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc檔案是不同的。

  2. from .. import

    如果想直接使用其他模組的變數或其他,而不加'模組名+.'字首,可以使用from .. import。

    例如想直接使用sys的argv,from sys import argv 或 from sys import *

  3. 模組的__name__

    每個模組都有一個名稱,py檔案對應模組名預設為py檔名,也可在py檔案中為__name__賦值;如果是__name__,說明這個模組被使用者

  單獨執行。

  4. dir()函式

    dir(sys)返回sys模組的名稱列表;如果不提供引數,即dir(),則返回當前模組中定義名稱列表。

    del -> 刪除一個變數/名稱,del之後,該變數就不能再使用。

六、資料結構

  python有三種內建的資料結構:列表、元組和字典。

  1. 列表

    list是處理一組有序專案的資料結構,列表是可變的資料結構。列表的專案包含在方括號[]中,eg: [1, 2, 3], 空列表[]。判斷列表中是否包含某項可以使用in, 比如 l = [1, 2, 3]; print 1 in l; #True;支援索引和切片操作;索引時若超出範圍,則IndexError;使用函式len()檢視長度;使用del可以刪除列表中的項,eg: del l[0] # 如果超出範圍,則IndexError

    list函式如下:

    append(value)  ---向列表尾新增項value

l = [1, 2, 2]
l.append(3) #[1, 2, 2, 3]

    count(value)  ---返回列表中值為value的項的個數

l = [1, 2, 2]
print l.count(2) # 2

    extend(list2)  ---向列表尾新增列表list2

l = [1, 2, 2]
l1 = [10, 20]
l.extend(l1)
print l   #[1, 2, 2, 10, 20]

    index(value, [start, [stop]])  ---返回列表中第一個出現的值為value的索引,如果沒有,則異常 ValueError

l = [1, 2, 2]
a = 4
try:
    print l.index(a)
except ValueError, ve:
    print "there is no %d in list" % a

    insert(i, value)  ---向列表i位置插入項vlaue,如果沒有i,則新增到列表尾部

複製程式碼
l = [1, 2, 2]

l.insert(1, 100)
print l #[1, 100, 2, 2]
l.insert(100, 1000)
print l #[1, 100, 2, 2, 1000]
複製程式碼

    pop([i])  ---返回i位置項,並從列表中刪除;如果不提供引數,則刪除最後一個項;如果提供,但是i超出索引範圍,則異常IndexError

複製程式碼
l = [0, 1, 2, 3, 4, 5]

print l.pop() # 5print l #[0, 1, 2, 3, 4]
print l.pop(1) #1print l #[0, 2, 3, 4]
try:
    l.pop(100)
except IndexError, ie:
    print "index out of range"
複製程式碼

    remove(value)  ---刪除列表中第一次出現的value,如果列表中沒有vlaue,則異常ValueError

複製程式碼
l = [1, 2, 3, 1, 2, 3]

l.remove(2)
print l #[1, 3, 1, 2, 3]
try:
    l.remove(10)
except ValueError, ve:
    print "there is no 10 in list"
複製程式碼

    reverse()  ---列表反轉

l = [1, 2, 3]
l.reverse()
print l #[3, 2, 1]

    sort(cmp=None, key=None, reverse=False)  ---列表排序

【Python Library Reference】
cmp:cmp specifies a custom comparison function of two arguments (iterable elements) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument: 
"cmp=lambda x,y: cmp(x.lower(), y.lower())" 
key:key specifies a function of one argument that is used to extract a comparison key from each list element: "key=str.lower"
reverse:reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.In general, the key and reverse conversion processes are much faster than specifying an 
equivalent cmp function. This is because cmp is called multiple times for each list element while key and reverse touch each element only once.

複製程式碼
l5 = [10, 5, 20, 1, 30]
l5.sort()
print l5 #[1, 5, 10, 20, 30]
l6 = [
            
           

相關推薦

Python 基礎語法()

Python的特點   1. 簡單     Python是一種代表簡單思想的語言。   2. 易學     Python有極其簡單的語法。   3. 免費、開源     Python是FLOSS(自由/開放原始碼軟體)之一。   4. 高層語言     使用Python編寫程式時無需考慮如何管理程式使用的記

課後筆記Python基礎語法介紹(1)

Python3.6.5我們總是找借口說還有時間去做某事,或者完成某事,結果總是不了了之。比如拖到現在才寫第一課聽課筆記。 第一節課,老師對以下內容做了分享,大致分為 環境配置 開發平臺:Mac OS Version 10.13.2 老師講課的是在Windows 10 我選擇在Mac OS進行Pyth

Python基礎語法

基礎 分享 AR .com pycha 安裝 python2.x ima 網上 Python2.x和3.x的區別簡單介紹: 編寫Python程序的幾種方式: 第一種: ctrl+d也可以退出交互式終端 第二種方式: exit()和ctrl+d都能退出

python基礎語法總結()-- python型別轉換函式+檔案讀寫

python常用系統函式方法與模組 python基礎語法總結(一)-- python型別轉換函式+檔案讀寫 python基礎語法總結(二)-- 函式function python基礎語法總結(三)-- 數與字串 python基礎語法總結(四)-- list列表

python 基礎)基本語法

特點 語法對比 從語法上分類: 1\面向物件:java(現大比較流行) c#(因為安卓市場的出現慢慢淡出) 2\面向過程:C(沒有類),(oracle)pl/sql---一直排第一位,處理大資料速度比較快免費的服務是收費的,(sqlserver)t-sql(微軟的  中小型

Python基礎語法

python行 縮進 字典一、行和縮進 Python與其他語言最大的區別就是,Python的代碼塊不適用大括號{}來控制類,數以及其他邏輯判斷。python 最具特色的就是用縮進來寫模塊。 縮進的空白數量是可變的,但是所有代碼塊語言必選包含相同的縮進空白數量,這個必須嚴格執行。 如下所示:

Python 基礎語法

變量名 name python 基礎 line 字符編碼 沒有 一個 col pytho 一  第一個python 程序 1 cmd裏輸入python 下進入交互器(解釋器)下,退出(exit)或者 ctrl + z print("hello world") 2 cmd下輸

Python基礎語法——(引號、字符串)

數值 就會 str 斜線 inpu 數據 自動 兩個 raw 一、單引號字符串和轉義引號   當字符串中出現單引號‘時,我們可以用雙引號""將該字符串引起來:"Let‘s go!"   而當字符串中出現雙引號時,我們可以用單引號‘‘將該字符串引起來:‘ "Hello,wor

Python基礎

類型 spa 例子 hat except 存在 內容 限制 字符數 Python基礎1 1.Hello World程序 2.變量 3.用戶輸入 4.模塊初識 5.數據類型初識 6.數據運算 7.表達式if ...else語句 8.表達式fo

css基礎語法(選擇器與css導入方式)

數字 mic link html clas ref height font 兼容 頁面中,所有的CSS代碼,需要寫入到<style></style>標簽中。style標簽的type屬性應該選擇text/css,但是type屬性可以省略。 CS

吾八哥學Python(三):了解Python基礎語法(上)

bre 等於 單行 了解 not 地址 字母 port 包含 學習一門開發語言首先當然是要熟悉它的語法了,Python的語法還算是比較簡單的,這裏從基礎的開始了解一下。 標識符1.第一個字符必須是字母表中字母或下劃線’_’。2.標識符的其他的部分有字母、數字和下劃線組成。3

Python大神之路 - Python基礎語法1

介紹 pan python基礎 發展 soft windows python介紹 ffffff 輸入 本章內容 Python介紹 發展史 Python 2 or 3? windows安裝Python Hello World程序 變量 用戶輸入 數據類型 數據運算符 作業

Pythonpython基礎語法 編碼

finall ont 實現 tro out 程序 port 其他 pytho 編碼 默認情況下,python以UTF-8編碼,所有的字符串都是Unicode字符串,可以為代碼定義不同的的編碼。 #coding:UTF-8 #OR #-*- coding:UTF-8 -

Charles的基本操作方法與python基礎

inpu 格式 format log text src 基礎 pos -s 開始與結束按鈕: 斷點按鈕: 清空按鈕: 若抓不到包可嘗試更改瀏覽器重新請求 python基礎(一) 計算機語言分為編譯型語言和解釋型語言,編譯型語言需要提前編譯,然後直接拿來運行,但解釋型語

Python基礎語法知識學習網址

post mage log clas 需要 gpo class 整理 run 最近在看python基礎,本來想自己整理一下,但是發現網上有現成的文檔,寫的非常好,所以此處就貼一個地址,需要的同學可以到下面的網址看下: http://www.runoob.com/python

十分鐘學python基礎語法01

中標 單引號 ctr 維護 python註釋 一個 區分 nbsp img # python官網:http://www.python.org/ # Tuple用( )標識、List用[ ]標識、Dictionary用{ }標識 # 除非對input有特別的需求,否則應該盡量

python基礎認識()

定義函數 命名 詳細 name 兩個 那是 不一致 log 日子   這些日子以來,新聞鋪天蓋地的都是人工智能,那麽借著這股潮流,python也隨之火起來了,現在的python不僅僅可以進行人工智能領域的開發。還可以進行web、爬蟲等領域的運用。因此,我認為作為一個緊跟潮流

python基礎語法 - 循環

註意 python基礎 pos 基礎 pan log 跳過 break nbsp while循環: while 條件:   ……   if 條件:     continue # 條件滿足跳過當次循環   if 條件     break # 條件滿足中止循環 else:

Python基礎語法 - 數據類型

person 也不會 符號 lpad 定位 系統 function 包含 字符串拼接 1、數字 2 是一個整數的例子。長整數 不過是大一些的整數。3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裏,52.3E-4表示52.3 * 10-4。(-5+4j)

python基礎語法 - 字典

pan 字符 col spa nbsp 列表 結合 cti fff python基礎語法 - 字典   字典是python中唯一的映射類型,采用鍵值對(key-value)的形式存儲數據。python對key進行哈希函數運算,根據計算的結果決定value的存儲地址,所以字典