3 回答

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊
不幸的是,Python無(wú)法實(shí)現(xiàn)您想要的(這使得Python對(duì)命令行一線(xiàn)程序幾乎無(wú)效)。甚至顯式使用括號(hào)也無(wú)法避免語(yǔ)法異常。您可以擺脫一系列用分號(hào)分隔的簡(jiǎn)單語(yǔ)句:
for i in range(10): print "foo"; print "bar"
但是,一旦添加了引入縮進(jìn)的塊的構(gòu)造(如if),就需要換行。也,
for i in range(10): print "i equals 9" if i==9 else None
是合法的,可能與您想要的近似。
至于try ... except事情:沒(méi)有,那將完全沒(méi)有用except。try說(shuō)“我想運(yùn)行此代碼,但可能會(huì)引發(fā)異常”。如果您不在乎該異常,請(qǐng)不要使用try。但是,一旦輸入,您就說(shuō)“我想處理潛在的異?!薄T損ass那么說(shuō),你要沒(méi)有特別處理。但這意味著您的代碼將繼續(xù)運(yùn)行,否則就不會(huì)繼續(xù)運(yùn)行。

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
您可以使用內(nèi)置的exec語(yǔ)句,例如:
exec("try: \n \t if sam[0] != 'harry': \n \t\t print('hello', sam) \nexcept: pass")
哪里\n是換行符,\t用作縮進(jìn)(選項(xiàng)卡)。
另外,您應(yīng)該計(jì)算使用的空間,以便縮進(jìn)完全匹配。
但是,正如所有其他答案已經(jīng)說(shuō)過(guò)的那樣,這僅在您確實(shí)需要將其放在一行上時(shí)才使用。
exec 這是一個(gè)非常危險(xiǎn)的聲明(尤其是在構(gòu)建Web應(yīng)用程序時(shí)),因?yàn)樗试S執(zhí)行任意Python代碼。

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
我建議不要這樣做...
您所描述的不是理解力。
我強(qiáng)烈建議使用PEP 8 Python代碼樣式指南在復(fù)合語(yǔ)句上這樣說(shuō):
通常不建議使用復(fù)合語(yǔ)句(同一行上的多個(gè)語(yǔ)句)。
是:
if foo == 'blah':
do_blah_thing()
do_one()
do_two()
do_three()
而不是:
if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()
以下是進(jìn)行區(qū)分的示例理解:
>>> [i for i in xrange(10) if i == 9]
[9]
添加回答
舉報(bào)