Python 基礎(chǔ)語法

2022-07-04 14:32 更新

Python 基礎(chǔ)語法

Python 語言與 Perl,C 和 Java 等語言有許多相似之處。但是,也存在一些差異。

在本章中我們將來學習 Python 的基礎(chǔ)語法,讓你快速學會 Python 編程。


用一張圖概況 Python 學習



第一個 Python程序

交互式編程

交互式編程不需要創(chuàng)建腳本文件,是通過 Python 解釋器的交互模式進來編寫代碼。

linux 上你只需要在命令行中輸入 Python 命令即可啟動交互式編程,提示窗口如下:

$ python
Python 2.4.3 (#1, Nov 11 2010, 13:34:43)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

Window 上在安裝 Python 時已經(jīng)安裝了默認的交互式編程客戶端,提示窗口如下:

python27

在 Python 提示符中輸入以下文本信息,然后按 Enter 鍵查看運行效果:

>>> print "Hello, Python!";

在 Python 2.7.13 版本中,以上事例輸出結(jié)果如下:

Hello, Python!

如果您運行的是新版本的 Python,那么你就需要在 print 語句中使用括號如:

>>>  print ("Hello, Python!");

腳本式編程

通過腳本參數(shù)調(diào)用解釋器開始執(zhí)行腳本,直到腳本執(zhí)行完畢。當腳本執(zhí)行完成后,解釋器不再有效。

讓我們寫一個簡單的 Python 腳本程序。所有 Python 文件將以 .py 為擴展名。將以下的源代碼拷貝至 test.py 文件中。

print "Hello, Python!";

這里,假設(shè)你已經(jīng)設(shè)置了 Python 解釋器 PATH 變量。使用以下命令運行程序:

$ python test.py

輸出結(jié)果:

Hello, Python!

讓我們嘗試另一種方式來執(zhí)行 Python 腳本。修改 test.py 文件,如下所示:

#!/usr/bin/python
print "Hello, Python!";

這里,假定您的 Python 解釋器在 /usr/bin 目錄中,使用以下命令執(zhí)行腳本:

$ chmod +x test.py     # 腳本文件添加可執(zhí)行權(quán)限
$./test.py

輸出結(jié)果:

Hello, Python!

Python2.x 中使用 Python3.x 的 print 函數(shù)

如果 Python2.x 版本想使用使用 Python3.x 的 print 函數(shù),可以導入 __future__ 包,該包禁用 Python2.x 的 print 語句,采用 Python3.x 的 print 函數(shù):

python2方式打?。?/span>
#coding=utf-8

list =["a", "b", "c"]
print list    # python2.x 的 print 語句
導入 __future__ 包后使用python2方式打?。?nbsp;
#coding=utf-8
from __future__ import print_function  # 導入 __future__ 包
list =["a", "b", "c"]
print list    # python2.x 的 print 語句
會報錯:

 File "<stdin>", line 1

print list

         ^

SyntaxError: invalid syntax

原因是因為python3的print與python2的不同,python3的print應(yīng)該使用如下方式:

#coding=utf-8
from __future__ import print_function  # 導入 __future__ 包
list =["a", "b", "c"]
print (list)    # python2.x 的 print 語句

Python標識符

在 Python 里,標識符由字母、數(shù)字、下劃線組成。

在 Python 中,所有標識符可以包括字母、數(shù)字以及下劃線(_),但不能以數(shù)字開頭。

Python 中的標識符是區(qū)分大小寫的。

以下劃線開頭的標識符是有特殊意義的。以單下劃線開頭(?_foo?)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用"?from xxx import *?"而導入;

以雙下劃線開頭的(?__foo?)代表類的私有成員;以雙下劃線開頭和結(jié)尾的(?__foo__?)代表python 里特殊方法專用的標識,如?__init__()?代表類的構(gòu)造函數(shù)。

Python 可以同一行顯示多條語句,方法是用分號 ; 分開,如:

>>> print 'hello';print 'Python';
hello
Python
但這并不是一種好的編程習慣,這樣的代碼是比較難以閱讀的,而且python以縮進區(qū)分代碼塊,以換行代表語句結(jié)束,使用分號來進行強制的語句結(jié)束是不合理的。

Python 保留字符

下面的列表顯示了在 Python 中的保留字。這些保留字不能用作常數(shù)或變數(shù),或任何其他標識符名稱。

所有 Python 的關(guān)鍵字只包含小寫字母。

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

行和縮進

學習 Python 與其他語言最大的區(qū)別就是,Python 的代碼塊不使用大括號({})包裹,而是以縮進來區(qū)分代碼塊。常見的代碼塊出現(xiàn)在函數(shù)、循環(huán)以及邏輯判斷等地方。Python 最具特色的就是用縮進來寫代碼塊。

縮進的空白數(shù)量是可變的,但是所有同一級別的代碼塊語句必須包含相同的縮進空白數(shù)量,這個必須嚴格執(zhí)行。如下所示:

if True:
    print "True"
else:
  print "False"

以下代碼將會執(zhí)行錯誤(if前面有一個空格):

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py

 if True:
    print "Answer"
    print "True"
else:
    print "Answer"
    # 沒有嚴格縮進,在執(zhí)行時報錯
  print "False"

執(zhí)行以上代碼,會出現(xiàn)如下錯誤提醒:

$ python test.py  
  File "test.py", line 5
    if True:
    ^
IndentationError: unexpected indent

?IndentationError: unexpected indent錯誤是 Python 編譯器是在告訴你"Hi,老兄,你的文件里格式不對了,可能是 tab 和空格沒對齊的問題",所有 Python 對格式要求非常嚴格。

 python的的最外層代碼不能帶有空格或縮進?。。?/p>

如果是 ?IndentationError: unindent does not match any outer indentation level?錯誤表明,你使用的縮進方式不一致,有的是 tab 鍵縮進,有的是空格縮進,改為一致即可。

因此,在 Python 的代碼塊中必須使用相同數(shù)目的行首縮進空格數(shù)。

建議你在每個縮進層次使用 單個制表符 或 兩個空格 或 四個空格 , 切記不能混用。

 在PEP8中規(guī)定了python一次縮進最好是四格。另外,有些代碼編輯器會幫助你進行代碼對齊,因為就如上述的代碼展示一樣,有時候多打了一個空格實際上也不是很明顯。

最后,雖然并沒有強制規(guī)定沒每一級的代碼塊縮進的空格數(shù)一定要固定四格,就像第一個縮進示例一樣。但是這樣的縮進會破壞整體代碼的美觀,影響代碼的閱讀。



多行語句

Python 語句中一般以換行作為語句的結(jié)束符。

但是我們可以使用斜杠( ?\?)將一行的語句分為多行顯示,如下所示:

total = item_one + \ 
        item_two + \
        item_three  

語句中包含?[]?,? {} ?或 ?()? 括號就不需要使用多行連接符。如下實例:

days = ['Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday']

Python 引號

Python 使用單引號(?' ?),雙引號(?" ?),三引號(?''' """?) 來表示字符串,引號的開始與結(jié)束必須是相同類型的。

其中三引號可以由多行組成,編寫多行文本的快捷語法,常用于文檔字符串,一般用在代碼文件的特定地點,被當做多行注釋使用。

#coding=utf-8
word = 'word'
sentence = "這是一個句子"
paragraph = """這是一個段落
包含了多個語句"""

Python注釋

Python中單行注釋采用 ??開頭。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py

# 第一個注釋
print "Hello, Python!";  # 第二個注釋

輸出結(jié)果:

Hello, Python!

注釋可以在語句或表達式行末:

name = "Madisetti" # 這是一個注釋

Python 中多行注釋使用三個單引號(?'''?)或三個雙引號(?"""?)。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 文件名:test.py


'''
這是多行注釋,使用單引號。
這是多行注釋,使用單引號。
這是多行注釋,使用單引號。
'''

"""
這是多行注釋,使用雙引號。
這是多行注釋,使用雙引號。
這是多行注釋,使用雙引號。
"""

Python 空行

函數(shù)之間或類的方法之間用空行分隔,表示一段新的代碼的開始。類和函數(shù)入口之間也用一行空行分隔,以突出函數(shù)入口的開始。

空行與代碼縮進不同,空行并不是 Python 語法的一部分。書寫時不插入空行,Python 解釋器運行也不會出錯。但是空行的作用在于分隔兩段不同功能或含義的代碼,便于日后代碼的維護或重構(gòu)。

記住:空行也是程序代碼的一部分。

 在PEP8中規(guī)定,函數(shù)塊之間需要空兩行。


等待用戶輸入

下面的程序執(zhí)行后就會等待用戶輸入,按回車鍵后就會退出:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

raw_input("按下 enter 鍵退出,其他任意鍵顯示...\n")
#本代碼在在線工具展現(xiàn)效果不佳,建議使用自己的python環(huán)境

以上代碼中 ,?\n? 實現(xiàn)換行。一旦用戶按下 enter(回車) 鍵退出,其它鍵顯示。


同一行顯示多條語句

#!/usr/bin/python
import sys; x = 'w3cschool'; sys.stdout.write(x + '\n')

執(zhí)行以上代碼,輸入結(jié)果為:

$ python test.py
w3cschool
不推薦使用這樣的代碼書寫方式

Print 輸出

?print ?默認輸出是換行的,如果要實現(xiàn)不換行需要在變量末尾加上逗號 ,

#!/usr/bin/python
# -*- coding: UTF-8 -*-

x="a"
y="b"
# 換行輸出
print x
print y

print '---------'
# 不換行輸出
print x,
print y,

# 不換行輸出
print x,y

以上實例執(zhí)行結(jié)果如下:

a
b
---------
a b a b

多個語句構(gòu)成代碼組

縮進相同的一組語句構(gòu)成一個代碼塊,我們稱之代碼組。

像 ?if?、?while?、?def ?和 ?class? 這樣的復(fù)合語句,首行以關(guān)鍵字開始,以冒號(? :? )結(jié)束,該行之后的一行或多行代碼構(gòu)成代碼組。

我們將首行及后面的代碼組稱為一個子句(clause)。

如下實例:

if expression : 
   suite 
elif expression :  
   suite  
else :  
   suite 

命令行參數(shù)

很多程序可以執(zhí)行一些操作來查看一些基本信息,Python 可以使用 -h 參數(shù)查看各參數(shù)幫助信息:

$ python -h 
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... 
Options and arguments (and corresponding environment variables): 
-c cmd : program passed in as string (terminates option list) 
-d     : debug output from parser (also PYTHONDEBUG=x) 
-E     : ignore environment variables (such as PYTHONPATH) 
-h     : print this help message and exit 
 
[ etc. ] 

我們在使用腳本形式執(zhí)行 Python 時,可以接收命令行輸入的參數(shù),具體使用可以參照  Python 命令行參數(shù)。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號