1樓:雷神拌檸檬
第二種情況很好理解
for n in range(2,14):
for x in range(2,n):
if n%x==0:
print n,'equals',x,'*',n/xbreak
else:
print n,'is a prime number'
比如n是個素數的話,第二重迴圈每次都會執行到else分支,由於else中沒有break,不會挑出第二層迴圈,就會打n is a prime number很多遍,非素數比如,8,9兩種情況自己想一下就明白了,很容易
for n in range(2,14):
for x in range(2,n):
if n%x==0:
print n,'equals',x,'*',n/xbreak
else:
print n,'is a prime number'
這裡的else應該是和他相對應的for迴圈結束後再被執行的,同時如果break跳出for迴圈,那麼對應的else也不執行,這樣執行結果就對了
2樓:龍戰於淵
#兩種型別的else表示的邏輯不一樣
#lz說的第一種,如果range(2, n)中的每一條均沒有執行,則會執行else語句,邏輯是for...else
以下是else的一些總結
if-else語句:
和各種語言相同的用法,在條件語句中,與if語句搭配使用的else語句。如果if語句的條件表示式的結果布林值為假,那麼程式將執行else語句後的**。它的語法是大家最為熟知的:
python**
if expression:
expr_true_suite
else:
expr_false_suite
elif(else-if)語句:
elif是python提供的else-if語句,它檢查多個條件表示式的值是否為真,並在為真時執行特定**塊中的**。和else一樣,elif是可選的,但是要注意的是,一個if語句可以跟多個elif語句,但最後只能有一個else語句:
python**
if expression1:
expr1_true_suite
elif expression2:
expr2_true_suite
elif expressionn:
exprn_true_suite
else:
none_of_the_above_suite
while-else/for-else語句:
在其他語言中,除了條件語句,是不會見到else分支的,但在python中,while和for迴圈中,也是可以使用else語句的。它們的工作順序為:在迴圈中使用時,else語句只在迴圈完成後執行,也就是說,break語句也會跳過else**塊,只要迴圈是正常結束,而不是通過break,else語句就會執行。
while-else舉例:
python**
#!/usr/bin/env python
# 尋找最大約數
def showmaxfactor(num):
count=num/2
while count>1:
if num%count == 0:
print 'largest factor of %d is %d' % (num,count)
break
count -=1
else:
print num,'is prime'
for i in range(10,21):
showmaxfactor(i)
程式的執行結果為:
largest factor of 10 is 5
11 is prime
largest factor of 12 is 6
13 is prime
largest factor of 14 is 7
largest factor of 15 is 5
largest factor of 16 is 8
17 is prime
largest factor of 18 is 9
19 is prime
largest factor of 20 is 10
try-else語句:
對於python中的錯誤和異常,try-except語句段,也可以和else連用,其功能和迴圈中的else語句沒有多大區別:在try範圍內沒有檢測到異常的時候,執行else子句。看一下語法:
python**
try:
log = open('logfile.txt','w')
except:
print 'file logfile.txt is not exsit'
else:
log.write('no exception caught')
log.close()
當然,在異常處理中,else一樣可以和finally聯用:try-except-else-finally。
3樓:匿名使用者
你把空格和tab混用了吧?只用tab試試
4樓:匿名使用者
# python中的for語句是有else分支的:
# 如果迴圈不是被break語句跳出,則迴圈結束後執行else分支,否則不執行
for i in range(10):
print i
if i > 5:break
else:
print 'every item has been printed'
python中if,else條件語句的縮排問題
5樓:匿名使用者
縮排沒問題,**可以執行
不過你這if的條件 ((num + 2)*3 - 6)/3 == num,不就是num == num麼
相當於if true了,呵呵
python3 函式內巢狀while語句,巢狀if語句 縮排問題
6樓:匿名使用者
if name='quit':
改為if name=='quit' :break
一個等號表示賦值,兩個等號才表示相等
python程式設計if語句 為什麼總提示 expected an indented block,縮排都沒用
7樓:玩轉資料處理
score=input()
score = int(score)
if score <60 and score >=0:
print "e"
elif score <70 and score >=60:
print "d"
elif score <80 and score >=70:
print "c"
elif score <90 and score >=80:
print "b"
else :
print "a"
python中if和else怎麼縮排
8樓:匿名使用者
if 1 < 2:
print('1<2')
else:
print('1>=2')
matlab的if語句,要求滿足多個條件中的,也就是說彼此是或的關係,怎麼寫
你的a是什麼型別copy的資料.報錯的資訊是bai什麼.語法是沒有錯du的.你上面的for是從i 1 10 而出錯的是i 8 由於zhi你的x1,y1的長度只有7個dao,你訪問第8個元素就出錯了.但是前七個的圖還在.所以你感覺是正常的.但是有點不正常就是了.if a i 2 a i 3 a i 4...
資料庫SQL查詢語句的編寫,SQL中多條件同時查詢語句怎麼寫?
select max id from 表 where num 100 查最大id select from 表 where id select max id from 表 where num 100 and num 100 查id最大並且num為100的那條資料 sql select 語句 selec...
語句while E 中的條件 E等價於。A E 0 B E 1 C E 0 D E
e 條件等價於 e 0 亦即 e 0 所以答案應該是a。就要使 e為真,即非0.到這裡你的認識是對的。e,非e,非0,不就要e為0嘛。a是正確的。e 0時,e為假,e為真嘛 樓主,不是這樣的,e應等於e 0.因為只有e 0時,條件才為真 代入後變成!0 如果e 0,就變成!0 即!1 就是那麼簡單 ...