在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Python/ 頂層組件
復(fù)合語句
數(shù)據(jù)模型
完整的語法規(guī)范
執(zhí)行模型
表達(dá)式
導(dǎo)入系統(tǒng)
詞法分析
簡單語句
頂層組件
介紹

頂層組件

Python解釋器的可以有幾種輸入源:從標(biāo)準(zhǔn)輸入或程序參數(shù)傳入的腳本,交互方式下的輸入,從模塊源文件,等等。本章給出在這些情況下使用的語法。

完整的 Python 程序

盡管語法規(guī)格說明不需要指明語言的解釋器是如何執(zhí)行的,對(duì)一個(gè)完整的Python程序的了解也是有用的。一個(gè)完整的Python程序運(yùn)行在一個(gè)最低限度的初始環(huán)境中:所有內(nèi)置和標(biāo)準(zhǔn)模塊都是可用的,但都沒有被初始化,除了sys(各種系統(tǒng)服務(wù))模塊、builtin(內(nèi)置函數(shù)、異常和None)模塊和__ main__ 模塊。main被用來為完整程序的運(yùn)行提供局部和全局名字空間。

針對(duì)于文件輸入來說的完整的 Python 程序語法,在下一節(jié)給出描述。

解釋器也可以以交互方式運(yùn)行;在這種情況下,它并不讀取和運(yùn)行一個(gè)完整程序,而是一次讀取和運(yùn)行一條語句(可能是復(fù)合語句)。這種初始環(huán)境與完整程序環(huán)境是相同的;每條語句都是在__ main__ 名字空間下運(yùn)行。

在Unix上,一個(gè)完整程序可以以三種形式傳給解釋器:使用-c字符串命令行選項(xiàng),以一個(gè)文件作為命令行的第一個(gè)參數(shù),或作為標(biāo)準(zhǔn)輸入。如果文件或標(biāo)準(zhǔn)輸入是一個(gè)tty(終端)設(shè)備,解釋器進(jìn)行交互模式;否則,它把文件作為一個(gè)完整程序來運(yùn)行。

文件輸入

所有從非交互文件的輸入讀取具有相同的形式:

file_input ::= (NEWLINE | statement)*

這個(gè)語法用于以下的情況:

  • 當(dāng)解析一個(gè)完整Python程序時(shí)(從文件或字符串中);
  • 當(dāng)解析一個(gè)模塊時(shí);
  • 當(dāng)解析一個(gè)傳給exec()語句的字符串時(shí);

交互式輸入

交互模式輸入使用以下語法進(jìn)行解析:

interactive_input ::= [stmt_list] NEWLINE | compound_stmt NEWLINE

請(qǐng)注意一個(gè)(頂層)復(fù)合語句后面在交互模式下必須跟著一個(gè)空行;需要用它來幫助解釋器檢測輸入的結(jié)束。

表達(dá)式輸入

eval()用于表達(dá)式的輸入。它將忽略前面的空格。Eval()的字符串參數(shù)必須具有以下形式:

eval_input ::= expression_list NEWLINE*

上一篇:完整的語法規(guī)范下一篇:介紹