python 基礎 條件語句


python 流程控制


1、if語句

    python的if 語句類似其它語言,if 語句包含一個邏輯表達式,使用表達式比較,在比較結果的基礎上作出決定。
  -if experssion(條件表達式):
       statement(s)(聲明)
# python 使用縮進作爲其語句分組的方法,建
議使用4個空格代替縮進
#if語句代碼段的開始有兩個冒號來決定;
例子:
#!/usr/bin/python
if  1<2:
    print "ok"
[root@zabbix tools]# python 2.py 
ok
如果修改爲:
#!/usr/bin/python
if  1>2:
    print "ok"
執行後沒有任何提示。
#容易犯的錯誤。
*沒有縮進
[root@zabbix tools]# python 2.py 
  File "2.py", line 4
    print "ok"
       ^
IndentationError: expected an indented block  
#此類異常99%都是因爲縮進問題導致。
      if 單分支

     *邏輯值(bool)用來表示諸如:對於錯,真於假,空於非空等概念。

     *邏輯值包含了兩個值

        -True:表示非空的量(比如:string,tuple,list,set,dictonary等),所有非零數。

        -False:表示0,None,空的量等。
#!/usr/bin/python
if 1+1:
    print "ok"
print "yes ok"
[root@zabbix tools]# python  2.py 
ok
yes ok
#此處的表示式1+1既不是True 也不是 False,也會產生True的效果
#如果此處將1+1修改爲1-1 :
#!/usr/bin/python
if 1-1:
    print "ok"
print "yes ok"
[root@zabbix tools]# python  2.py 
yes ok
#注意此處的ok沒有打印,相當於False! 
#!/usr/bin/python
if 1:
    print "ok"
[root@zabbix tools]# python 2.py 
ok
#!/usr/bin/python
if 0:
    print "ok"
[root@zabbix tools]# python 2.py 
[root@zabbix tools]# 
#直接返回1或0
#調用函數,返回1 ,觀察結果。
#!/usr/bin/python
def fun():
    return 1
if fun:
    print "ok"
[root@zabbix tools]# python 2.py 
ok
else 雙分支
         -if expression:
              statement(s)
            else:
              statement(s)
          - 如果在條件表達式if語句解析爲0或false值。else語句是一個可選的語句,並最多只能有一個else 語句。
範例:
#!/usr/bin/python
def fun():
    return 0
print fun()
if fun():
    print "ok"
else:
    print "bad"
[root@zabbix tools]# python 2.py 
0
bad
#注意else 後要有冒號,且要有相對應的if。
if elif 多分支
         
    - if expression:
          statement(s)

       elif expression2:
           statement(s)

       elif expression3:
           statememt(s)
       else :
           statememt(s)


      -elif語句可以讓你檢查多個表達式爲真值,並執行一個代碼塊,elif語句是可選的,可以有任意數量的elif。
範例:
#!/usr/bin/python
x = int(raw_input("please input:"))
if x>=90:
    print "A"
elif x>=80 :
    print "B"
elif x>=70:
    print "c"
else :
   print "bad"
[root@zabbix tools]# python 2.py 
please input:80
B
[root@zabbix tools]# python 2.py 
please input:8
bad
嵌套的if...elif.... else構造

           - if expression:
                   statement(s)
                   if expression2:
                       statement(s)
                else :
                    statememt(s)
範例:
x = -1
y = 99
if(x >= 0):
    if(x > 0):          #嵌套的if語句
        y = 1
    else:
        y = 0
else:
    y = -1
print "y =", y
輸出爲y=-1
#儘量減少避免嵌套語句的使用,不便於閱讀。
and 、 or 、 not邏輯運算符範例:
#!/usr/bin/python
x = int(raw_input("please input x:"))
y = int(raw_input("please input y:"))
if x>=90 and y>=90:
    print "A"
elif x>=80 or y>=80:
    print "B"
else :
   print "bad"
[root@zabbix tools]# python 2.py 
please input x:100
please input y:100
A
[root@zabbix tools]# python 2.py 
please input x:60
please input y:50
bad
[root@zabbix tools]# python 2.py 
please input x:90
please input y:60
B


2、for 循環


      在python for 循環遍歷序列,如一個列表或一個字符。

         -for 循環語法:
             for iterrating_var in sequence:
                 statements(s)
       注:如果一個序列包含一個表達式列表,它是第一個執行。然後,該序列中的第一項複製給迭代變量iterating_var.接下來,執行語句塊。列表中的每個項目分配到iterating_var,代碼塊被執行,直到真個序列被耗盡。

       格式遵循代碼塊縮進原則。
#!/usr/bin/python
for x in "abcd":
    print "hello word"
[root@zabbix tools]# python 3.py 
hello word
hello word
hello word
hello word
 #"x"迭代變量可以是任意值,到序列”abcd“ 取到值後執行代碼段"hellow word"
#注意:開啓語句執行。
#"迭代",指重複執行一個指令。
     循環結構是用於迭代多個項的for語句,迭代形式可以循環序列的所有成員。

   *range(i,j,[,步進值]) #可以快速生成序列

    -如果所創建的對象爲整數,可以用range。

    -i爲初始數值,

    -j爲終止數值,但不包括在範圍內,步進值爲可選參數,不選的話默認爲1。

    -i不選的話默認爲0

範例:

>>> range(1,20,2)
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
#!/usr/bin/python
for x in range(1,20,3):
    print x,"hello word"
[root@zabbix tools]# python 3.py 
1 hello word
4 hello word
7 hello word
10 hello word
13 hello word
16 hello word
19 hello word
    計算從1+100 
#!/usr/bin/python
num=0
for x in range(1,101):
    num+=x                 #num=num+x
print num
   
[root@zabbix tools]# python 3.py 
5050
 -迭代序列指數(索引)

           —遍歷每個項目的另一種方法是由序列本身的偏移指數(索引):
#!/usr/bin/python
s="hello"
a=[1,2,3,4,"a"]
b=(7,8,"x","y")
c={1:111,2:222,3:333}
for x in c:
     print c[x] 
[root@zabbix tools]# python 4.py
111
222
333
#也可以通過字典中items 的方法獲取到裏面所有的鍵值段。 
print c.items()
[(1, 111), (2, 222), (3, 333)]
#a,b,c,d=t  t當中的值會依次賦給a,b,c,d,利用這個特性使用for 循環
#利用字典items()方法將字典中key、value以元組的方式返回。
for k,v in c.tiems():
    print k
    print v
在for 循環中正常結束之後else 就會執行
#!/usr/bin/python
c={1:111,2:222,3:333}
print c.items()
for k,v in c.items():
     print k
     print v
else: 
     print "ending"
[root@zabbix tools]# python  5.py 
[(1, 111), (2, 222), (3, 333)]
1
111
2
222
3
333
ending
如果是for循環非正常執行結束,else:是不執行的


#!/bin/usr/python
import time   #導入時間模塊
for x in range(10):
    print x   
    time.sleep(1)
    if x==2:
        break
    print "#"*50
else:
    print "ending"
for x in range(3):
    print x
[root@zabbix tools]# python 5.py 
0
##################################################
1
##################################################
2
0
1
2


 exit() 程序跳出:
#!/bin/usr/python
import time
for x in range(10):
    print x   
    time.sleep(1)
    if x==2:
        break
    print "#"*50
else:
    print "ending"
for x in range(3):
    print x
[root@zabbix tools]# python 5.py 
0
##################################################
1
##################################################
2


continue跳出當次循環的餘下語句,進入下次循環:
#!/bin/usr/python
import time
for x in range(10):
    print x   
    time.sleep(1)
    if x==2:
        continue
    print "#"*50
    if x==4:
        exit()
else:
    print "ending"
for x in range(3):
    print x
[root@zabbix tools]# python 5.py 
0
##################################################
1
##################################################
2
3
##################################################
4
###################################################
注意執行在2的時候,沒有打印#號


 pass 佔位樁(在語句中執行pass時未做任何操作):
#!/bin/usr/python
import time
for x in range(10):
    print x   
    time.sleep(1)
    if x==2:
        pass
    if x==3:
       exit()
    print "#"*50
else:
    print "ending"
for x in range(3):
    print x
[root@zabbix tools]#
[root@zabbix tools]# python 5.py 
0
##################################################
1
##################################################
2
##################################################
3



 

4、while循環

      while循環,直到表達式變爲假。表達的是一個邏輯表達式,必須返回一個true或false值。

                  語法:

                       while expression:

                           statement(s)

範例:

[root@zabbix tools]# cat while.py 
#!/usr/bin/python
while True:
    print "#"*50

#上述是一個死循環!while會根據後邊的條件表示式進行判斷,當爲True的時候執行代碼段,所以在寫while語句的時候一定要有條件讓它結束。


[root@zabbix tools]# cat while.py 
#!/usr/bin/python
while True:
    print "#"*50
    x=raw_input("please input somethong,q fro quit:")
    if x == "q":
        break
You have new mail in /var/spool/mail/root
[root@zabbix tools]# python while.py 
##################################################
please input somethong,q fro quit:a
##################################################
please input somethong,q fro quit:q
[root@zabbix tools]# 
或者直接寫在表達式裏:
[root@zabbix tools]# python while.py 
##################################################
please input something ,q for quit:
[root@zabbix tools]# cat while.py 
#!/usr/bin/python
x = ""
while x != "q":
    print "#"*50
    x=raw_input("please input something ,q for quit:")
    if not x :
        break
[root@zabbix tools]# 
#注意取反

    while 中的else:

[root@zabbix tools]# python while.py 
##################################################
please input something ,q for quit:
[root@zabbix tools]# python while.py 
##################################################
please input something ,q for quit:q
ending......
[root@zabbix tools]# cat while.py 
#!/usr/bin/python
x = ""
while x != "q":
    print "#"*50
    x=raw_input("please input something ,q for quit:")
    if not x :
        break
else:
    print "ending......"  
# 當while中當代碼段執返回爲false時,會執行else,break是跳出。
[root@zabbix tools]# python while.py 
##################################################
please input something ,q for quit:w
one more time~~~~
##################################################
please input something ,q for quit:w^H
one more time~~~~
##################################################
please input something ,q for quit:c
##################################################
please input something ,q for quit:q
one more time~~~~
ending......
[root@zabbix tools]# cat while.py 
#!/usr/bin/python
x = ""
while x != "q":
    print "#"*50
    x=raw_input("please input something ,q for quit:")
    if not x :
        break
    if  x == "c":
        continue  
    print "one more time~~~~"
else:
    print "ending......"

                                                                  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章