Python3入門指南之基礎語法

3、Python基礎語法學習

3.1 編寫第一個Python程序

任何一種編程語言都有本身的一套語法,編譯器或者解釋器負責把符合語法的程序代碼轉換成CPU可以執行的機器碼而後執行,Python也不例外,也有本身的語法規則和解析器。python

Python程序是大小寫敏感的,若是寫錯了大小寫,程序會報錯。linux

python最具特點的就是使用縮進來表示代碼塊,不須要使用大括號 {}編程

縮進的空格數是可變的,可是同一個代碼塊的語句必須包含相同的縮進空格數, 縮進的空格數不一致,會致使運行錯誤。瀏覽器

一份Python代碼示例:服務器

#!/usr/bin/python3async

print("hello Python");編程語言

 

if True:編輯器

    print ("True")ide

else:函數

    print ("False")

 

縮進的空格數不一致,下面的代碼運行會報錯:

#!/usr/bin/python3

print("hello Python");

 

if True:

    print ("True")

else:

print ("False")    #此處代碼塊沒有與上面的代碼塊對齊

 

/*

運行報錯提示:

PS C:\Users\11266> & C:/Users/11266/AppData/Local/Programs/Python/Python38-32/python.exe d:/linux-share-dir/Python/python_code.py

  File "d:/linux-share-dir/Python/python_code.py", line 7

    print ("False")

    ^

IndentationError: expected an indented block

*/

 

3.2 Python中單行與多行註釋語法

確保對模塊, 函數, 方法和行內註釋使用正確的風格

Python中的註釋有單行註釋和多行註釋。

Python中單行註釋以#開頭,例如:

#這是一個註釋

print("hello world!")

 

多行註釋用三個單引號 ''' 或者三個雙引號 """ 將註釋括起來,例如:

一、單引號(''')

#!/usr/bin/python3 

'''

這是多行註釋,用三個單引號

這是多行註釋,用三個單引號 

這是多行註釋,用三個單引號

'''

print("Hello, World!")

 

二、雙引號(""")

#!/usr/bin/python3 

"""

這是多行註釋,用三個雙引號

這是多行註釋,用三個雙引號 

這是多行註釋,用三個雙引號

"""

print("Hello, World!")

 

3.3 python輸出功能基本語法:print()

print(' '),print(" "): 在引號內加入指定字符串,便可輸出指定文字。

區別只是單引號內特定字符須要使用轉義字符"\",而雙引號則不須要。

固然,雙引號中包含雙引號須要用轉義字符,單引號中則不須要。

例如:  print('hello world!'),運行後輸出的即是hello world!

示例:

#!/usr/bin/python3

print("hello world!")

print('hello world!')

print('hello \'world!\'')

print("hello 'world!'")

print("hello \"world!\"")

輸出結果:

hello world!

hello world!

hello 'world!'

hello 'world!'

hello "world!"

 

print函數也能夠接受多個字符串,用逗號「,」隔開,就能夠連成一串輸出。

使用逗號的地方輸出後會變成空格。

示例:

#!/usr/bin/python3

print("歡迎","學習","Python編程")

print('歡迎','學習','Python編程')

輸出結果:

歡迎 學習 Python編程

歡迎 學習 Python編程

print也能夠打印整數,計算結果。

print(2019),print(100+200)

輸出結果:

2019

300

print也能夠進行多行輸出。(三重單引號或三重雙引號''',""")

#!/usr/bin/python3

print('''歡迎

學習

Python

編程''')

print("""歡迎

學習

Python

編程""")

 

輸出結果:

歡迎

學習

Python

編程

歡迎

學習

Python

編程

 

print()也能夠打印整數或者計算結果:

示例:

#!/usr/bin/python3

print(200+300)

print("200+300=",200+300)

print("100*2=",100*2)

print("(10+2)*4-10=",(10+2)*4-10)

輸出結果:

500

200+300= 500

100*2= 200

(10+2)*4-10= 38

 

print 默認輸出是換行的,若是要實現不換行須要在變量末尾加上 end=""

示例:

#!/usr/bin/python3

print("hello ")

print("world")

 

print("hello ",end="")

print("world")

 

輸出結果:

hello

world

hello world

 

3.4 python輸入功能基本語法:input()

Python提供了input()內置函數從標準輸入讀入一行文本,默認的標準輸入是鍵盤。

input 能夠接收一個Python表達式做爲輸入,並將運算結果返回。

示例:

#!/usr/bin/python3

str = input("請輸入:")

print ("你輸入的內容是: ", str)

輸出結果:

請輸入:歡迎學習python編程

你輸入的內容是:  歡迎學習python編程

當運行代碼並按下回車後,Python交互式命令行就在等待你的輸入了。這時,你能夠輸入任意字符,而後按回車後完成輸入。

輸入完成後,剛纔輸入的內容就存放到str 變量裏了。

 

input()函數還支持顯示一個字符串來提示用戶,這樣,用戶就能夠根據提示輸入指定的內容:

示例:

#!/usr/bin/python3

name = input("請輸入你的名字:")

print ("你的名字是:", name)

輸出結果:

請輸入你的名字:Python

你的名字是: Python

 

在python3.0之後的版本中,input接收的是字符串;input()對輸入的數據都是按照字符串方式處理,若是想要獲得其餘類型的數據,須要對類型作轉換:

示例:

#!/usr/bin/python3

my_float = float(input('請輸入一個浮點數:'))

my_int = int(input('請輸入一個整數:'))

my_str = input('請輸入一個字符串:')

3.5 Python標識符與關鍵字

標識符(變量的名字)是電腦語言中容許做爲名字的有效字符串集合。其中,有一部分是關鍵字,構成語言的標識符;這樣的標識符是不能作它用的標識符的,不然會引發語法錯誤。

標識符的定義規則:

(1) 第一個字符必須是字母表中字母或下劃線 _

注意: 下劃線對解釋器有特殊的意義, 對於普通的變量應當避免下劃線開頭的命名風格。

(2) 標識符的其餘的部分由字母、數字和下劃線組成

(3) 標識符對大小寫敏感。

(4) 在Python 3 中,能夠用中文做爲變量名,非 ASCII 標識符也是容許。

  (5)  Python的關鍵字不能當作標識符

 

任何語言的關鍵字應該保持相對的穩定,可是由於 Python 是一門不斷成長和進化的語言,Python 的標準庫提供了一個 keyword 模塊,能夠輸出當前版本的全部關鍵字:

#!/usr/bin/python3

import keyword

print(keyword.kwlist)

 

輸出結果以下:

 ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

 

示例代碼:

#!/usr/bin/python3

str="hello world"

data=6666

變量="中國"    #使用中文當作變量名稱

print("str=",str) 

print("data=",data)

print("變量=",變量)

 

輸出的結果:

str= hello world

data= 6666

變量= 中國

3.6 Python代碼縮進規則

和其它程序設計語言(如 Java、C 語言)採用大括號「{}」分隔代碼塊不一樣,Python 採用代碼縮進和冒號( : )來區分代碼塊之間的層次。

在 Python 中,對於類定義、函數定義、流程控制語句、異常處理語句等,行尾的冒號和下一行的縮進,表示下一個代碼塊的開始,而縮進的結束則表示此代碼塊的結束。

Python 中實現對代碼的縮進,可使用空格或者 Tab 鍵實現。但不管是手動敲空格,仍是使用 Tab 鍵,一般狀況下都是採用 4 個空格長度做爲一個縮進量(默認狀況下,一個 Tab 鍵就表示 4 個空格)。

示例代碼:

#!/usr/bin/python3

if 123>456:   #以冒號表示if語句的代碼塊

    print("123>456")    #print代碼須要縮進,不能與if語句同樣對齊頂格,不然會報錯

else:   #以冒號表示else語句的代碼塊

    print("123<456")    #print代碼須要縮進

 

圖片

圖3-6-1

3.7 文本編碼

由於目前的計算機CPU只能處理數字,要處理文本,就須要把文本轉換爲數字才能處理。

最先的計算機在設計時採用8個比特(bit)做爲一個字節(byte),一個字節能表示的最大的整數就是255(二進制11111111=十進制255),若是要表示更大的整數,就必須用更多的字節。

好比:兩個字節能夠表示的最大整數是65535,4個字節能夠表示的最大整數是4294967295。

因爲計算機是美國人發明的,最先只有127個字符被編碼到計算機裏,包含大小寫英文字母、數字和一些符號,這個編碼表被稱爲ASCII編碼,好比大寫字母A的編碼是65,小寫字母z的編碼是122。

可是要處理中文顯然一個字節是不夠的,至少須要兩個字節,並且還不能和ASCII編碼衝突,因此,中國製定了GB2312編碼,用來把中文編進去。

能夠想獲得的是,全世界有上百種語言,日本把日文編到Shift_JIS裏,韓國把韓文編到Euc-kr裏,各國有各國的標準,就會不可避免地出現衝突,結果就是,在多語言混合的文本中,顯示出來會有亂碼。

所以,就誕生了Unicode編碼。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。

若是咱們把全部文本編碼都統一成Unicode編碼,亂碼問題就消失了;可是,若是你寫的文本基本上所有是英文的話,用Unicode編碼比ASCII編碼須要多一倍的存儲空間,在存儲和傳輸上就十分不划算。

因此,又出現了把Unicode編碼轉化爲「可變長編碼」的UTF-8編碼。

UTF-8編碼把一個Unicode字符根據不一樣的數字大小編碼成1-6個字節,經常使用的英文字母被編碼成1個字節,漢字一般是3個字節,只有很生僻的字符纔會被編碼成4-6個字節。若是要傳輸的文本包含大量英文字符,用UTF-8編碼就能節省空間。

字符

ASCII

Unicode

UTF-8

A

01000001

00000000 01000001

01000001

x

01001110 00101101

11100100 10111000 10101101

從上面的表格能夠發現, ASCII編碼實際上能夠被當作是UTF-8編碼的一部分,因此,大量只支持ASCII編碼的歷史遺留軟件能夠在UTF-8編碼下繼續工做。

目前在計算機內存中,統一使用Unicode編碼,當須要保存到硬盤或者須要傳輸的時候,就轉換爲UTF-8編碼。

用記事本編輯的時候,從文件讀取的UTF-8字符被轉換爲Unicode字符到內存裏,編輯完成後,保存的時候再把Unicode轉換爲UTF-8保存到文件。

瀏覽網頁的時候,服務器會把動態生成的Unicode內容轉換爲UTF-8再傳輸到瀏覽器。

默認狀況下,Python 3源碼文件都是以 UTF-8 編碼,全部字符串都是 unicode 字符串。

圖片

圖3-7-1

代碼裏也能夠爲源碼文件指定不一樣的編碼。

好比:定義容許在源文件中使用 Windows-1252 字符集中的字符編碼,對應適合語言爲保加利亞語、白羅斯語、馬其頓語、俄語、塞爾維亞語。

# -*- coding: cp-1252 -*-

 

定義源代碼使用UTF-8編碼:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

if 123>456:   #以冒號表示if語句的代碼塊

    print("123大於456")    #print代碼須要縮進,不能與if語句同樣對齊頂格,不然會報錯

    print("hello world")

else:   #以冒號表示else語句的代碼塊

    print("123小於456")    #print代碼須要縮進

第一行註釋是爲了告訴Linux/OS X系統,這是一個Python可執行程序,Windows系統會忽略這個註釋。

第二行註釋是爲了告訴Python解釋器,按照UTF-8編碼讀取源代碼,不然,你在源代碼中寫的中文輸出可能會有亂碼。

聲明瞭UTF-8編碼並不意味着你的.py文件就是UTF-8編碼的,必須而且要確保文本編輯器正在使用UTF-8編碼。

相關文章
相關標籤/搜索