計算機程序在解決某個具體問題時,包括三種情形,即順序執行全部的語句、選擇執行部分的語句和循環執行部分語句,這正好對應着程序設計中的 三種程序執行結構流程:順序結構、選擇結構和循環結構。python
事實證實,任何一個能用計算機解決的問題,只要應用這三種基本結構來寫出的程序都能解決。Python語言固然也具備這三種基本結構linux
一、IF 選擇結構語句express
{windows
簡單分支語句數組
if 判斷條件:app
執行語句1……less
else:ide
執行語句2……函數
此時,條件1成立時執行語句1,;條件2成立時執行語句2ui
name = 'luren'
if name == 'python': # 判斷變量否爲'python' | name == 'python' ### 字符串的比較
print 'welcome boss' # 並輸出歡迎信息
else:
print name # 條件不成立時輸出變量名稱
多個分支結構:
if 判斷條件:
執行語句1……
elif:
執行語句2……
else:
執行語句3……
此時,條件1成立時執行語句1,;條件2成立時執行語句2;條件1和條件2都不成立時執行語句3
x = int(raw_input("請輸入您的總分:"))
if x >= 90:
print('優')
elif x>=80:
print('良')
elif x >= 70:
print('中')
elif x >= 60:
print('合格')
else:
print('不合格')
if語句多個條件
num = 9
if num >= 0 and num <= 10: # 判斷值是否在0~10之間
print 'hello'
>>> hello # 輸出結果
num = 10
if num < 0 or num > 10: # 判斷值是否在小於0或大於10
print 'hello'
else:
print 'undefine'
>>> undefine # 輸出結果
num = 8
# 判斷值是否在0~5或者10~15之間
if (num >= 0 and num <= 5) or (num >= 10 and num <= 15):
print 'hello'
else:
print 'undefine'
嵌套條件語句
if<條件>:
if<條件>:
<語句1>
elif<條件>:
<語句2>:
else:
<語句3>
編寫條件語句時,應該儘可能避免使用嵌套語句。嵌套語句不便於閱讀,並且可能會忽略一些可能性。
}
二、while 循環語句
{
在給定的判斷條件爲 true 時執行循環體,不然退出循環體
count = 0
while (count < 9):
print 'The count is:', count
count = count + 1
print "Good bye!"
循環使用 else 語句
count = 0
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
while True:
xxxx
嵌套循環 你能夠在while循環體中嵌套for/while循環
while expression:
while expression:
statement(s)
statement(s)
i = 2
while(i < 100):
j = 2
while(j <= (i/j)):
if not(i%j): break
j = j + 1
if (j > i/j) : print i, " 是素數"
i = i + 1
print "Good bye!"
}
三、for 循環語句
{
python 中 for 語句結構是在一個序列上遍歷
words = ['cat', 'windows', 'linux']
for w in words:
print w, len(w)
重複執行語句
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print '當前水果 :', fruits[index]
print "Good bye!"
循環使用 else 語句 , else能夠用於for循環,當循環天然終止,即沒有被break停止時,會執行else下的語句
for num in range(10,20): # 迭代 10 到 20 之間的數字
for i in range(2,num): # 根據因子迭代
if num%i == 0: # 肯定第一個因子
j=num/i # 計算第二個因子
print '%d 等於 %d * %d' % (num,i,j)
break # 跳出當前循環
else: # 循環的 else 部分
print num, '是一個質數'
}
四、enumrate
{
使用內置 enumerate 函數進行遍歷:
for index, item in enumerate(sequence):
process(index, item)
>>> sequence = [12, 34, 34, 23, 45, 76, 89]
>>> for i, j in enumerate(sequence):
... print i,j
...
0 12
1 34
2 34
3 23
4 45
5 76
6 89
}
五、三元運算符
{
if語句能夠使用在一個單語句中,實現三元運算符,基本形式:<表達式1> if <條件> else <表達式2>
}
六、循環控制語句
{
break 語句 在語句塊執行過程當中終止循環,而且跳出整個循環
continue 語句 在語句塊執行過程當中終止當前循環,跳出該次循環,執行下一次循環。
pass 語句 pass是空語句,是爲了保持程序結構的完整性,用於須要一個語句以符合語法,但又什麼都不須要作時, 也能夠用於寫一個空函數
>>> for n in range (2,10):
... for x in range (2,n):
... if n % x == 0:
... print n, 'equals', x, '*', n/x
... break
... else:
... print n, 'is a prime number'
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
}
break 和 continue 語句,循環時使用else,else能夠用於for循環,當循環天然終止,即沒有被break停止時,會執行else下的語句
>>> for n in range (2,10):
... for x in range (2,n):
... if n % x == 0:
... print n, 'equals', x, '*', n/x
... break
... else:
... print n, 'is a prime number'
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
break 和 continue 語句,循環時使用else, else能夠用於for循環,當循環天然終止,即沒有被break停止時,會執行else下的語句
>>> for n in range (2,10):
... for x in range (2,n):
... if n % x == 0:
... print n, 'equals', x, '*', n/x
... break
... else:
... print n, 'is a prime number'
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3
}
七、xrange,range
{
若是須要迭代一個數字序列的話,能夠使用range()函數,range()函數能夠生成等差級數,
for語句的循環對象能夠是列表、元組以及字符串,能夠經過range()函數產生一個迭代值,以完成計數循環
>>> range (5)
[0, 1, 2, 3, 4]
>>> range (2,5)
[2, 3, 4]
>>> range (5,10,1)
[5, 6, 7, 8, 9]
>>> range (5,10,2)
[5, 7, 9]
>>> range (5,10,3)
[5, 8]
xrange生成的不是一個數組,而是一個生成器
>>> xrange(5)
xrange(5)
>>> list(xrange(5))
[0, 1, 2, 3, 4]
>>> xrange(1,5)
xrange(1, 5)
>>> list(xrange(1,5))
[1, 2, 3, 4]
>>> xrange(0,6,2)
xrange(0, 6, 2)
>>> list(xrange(0,6,2))
[0, 2, 4]
for語句使用range()函數能夠構建基於已知循環次數的循環程序,也能夠以range()生成的數字做爲索引來訪問列表、元組、字符串中的值。
須要注意的是,range() 函數返回的對象表現爲它是一個列表,但事實上它並非,range()函數並非在調用時一次生成整個序列,而是遍歷一次才產生一個值,以減小內存的佔用,其本質是一個迭代器。
}