是否有可能有while循環純粹是在一行一條巨蟒,我已經試過這樣:While循環的單行
while n<1000:if n%3==0 or n%5==0:rn+=n
但它產生的錯誤信息:在if
聲明
Invalid Syntax
是否有可能有while循環純粹是在一行一條巨蟒,我已經試過這樣:While循環的單行
while n<1000:if n%3==0 or n%5==0:rn+=n
但它產生的錯誤信息:在if
聲明
Invalid Syntax
在Python中使用compound statement(需要套件的語句,縮進塊),並且該塊僅包含simple statements,則可以刪除換行符,並用分號分隔簡單語句。
但是,那不是支持複合語句。
所以:
if expression: print "something"
作品,但
while expression: if expression: print "something"
不不因爲無論是while
和的if
陳述化合物。
爲了您具體例如,你可以使用,而不是一個複雜的語句表達了conditional expression更換if expression: assignment
一部分,所以:
while expression: target = true_expression if test_expression else false_expression
一般
,或者while n<1000: rn += n if not (n % 3 and n % 5) else 0
明確。
從風格的角度來看,你通常希望自己留下那一行。
在您的示例中,您嘗試將兩個塊/縮進級別合併爲一行,這是不允許的。
while n < 1000: rn += n if (n % 3 == 0 or n % 5 == 0) else 0
其內容爲「添加n至RN如果:你只能用簡單的語句,不循環,if語句,函數定義等。這就是說,你比如有使用三元運算符一種變通方法做到這一點條件成立,否則加0。
它是更多鈔票做同樣的事情:
rn = 100
for n in range(10): rn += n if (n%3==0 or n%5==0) else 0
你爲什麼不試試* *呢?這是一個無限循環,但就Python而言,它將起作用。 – 2013-03-03 12:39:48
@MartijnPieters我有,它不起作用 – user2128561 2013-03-03 12:40:28
「它不工作」不是問題的描述。 *什麼*不起作用?你期望發生什麼,發生了什麼?你得到了什麼錯誤? – 2013-03-03 12:41:03