Python的條件判斷與循環樣例

1、if 判斷

Python條件語句是經過一條或多條語句的執行結果(True或者False)來決定執行的代碼塊。python

if expression:    
    statements(s)

這裏要注意的是,Python使用縮進做爲語句分組的方法,因此咱們建議使用4個空格做爲縮進,在同一個縮進裏面的,都屬於同一個代碼塊,固然若是用到編譯器的話,在寫完代碼後,可使用編譯器調整好代碼格式。express

如今咱們寫一個簡單的if條件以下:測試

#!/usr/local/python3/bin/python

if 0<1:                                    #若是0小於1,則運行下面縮進裏的代碼塊內容
    print("Hello World !")        
#    print("True")
    print("False")

由於0小於1是正確的,因此該代碼運行後將輸出如下內容:ui

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python 2.py
Hello World !
False

如今來個複雜一些的是,加入運算符優先級判斷:spa

#!/usr/local/python3/bin/python

if not 0>1 and 1==1:     #這裏先判斷邏輯非「not」,而後再判斷「and」,這裏結果爲真,因此將運行縮進代碼塊的內容
    print("Hello World !")
#    print("True")
    print("False")

咱們寫一個簡單的判斷考試成績的等級的腳本,以下所示:code

#!/usr/locscorel/python3/bin/python

score=int(input("Please input score number : "))  #int()是把輸入的str字符串轉換成int數值

if score <= 100:                     #首先判斷這個數是否小於等於100,符合條件則進入下一個判斷
    if score >= 90:                  #判斷這個數是否大於等於90
        print("You got A.")

    elif score >= 75:                #判斷這個數是否大於等於75
        print("You got B.")

    elif score >=60:                 #判斷這個數是否大於等於60
        print("You got C")

    else:                            #若是以上條件都不符合,則輸出下面縮進的內容  
        print("You got D,and not pass.")

else:                                #若是輸入的數大於100的輸出結果
    print("Please input a correct score.")

邏輯值(bool)也就是布爾值,包含了兩個值(True or False):orm

True 表示非空的量,好比:string,tuple,list,set,dict等全部非零數字符串

False則表示0,None,空的量等input

 

2、while 循環

while與for相比編譯器

for循環用在有次數的循環上。

while循環用在有條件的控制上,和 if 比較類似。

while循環,直到表達式變爲假(或者有一個break),才退出while循環,表達式是一個邏輯表達式,必須返回一個True或False。語法以下

while expression:
    statement(s)

如今咱們寫一個while循環,讓用戶輸入指定字符退出,以下所示:

#!/usr/local/python3/bin/python

x=''
while x != 'q':          #當字符串 x 不等於 "q" 時
    print('hello')
    x=input("Please input something like q for quit :")
    if not x:
        break
    if x=='quit':
        continue
    print("Please continue.")

else:
    print("world")

運行的測試結果以下:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python whileE.py
hello
Please input something like q for quit :e
Please continue.
hello
Please input something like q for quit :re
Please continue.
hello
Please input something like q for quit :quit
hello
Please input something like q for quit :q
Please continue.
world
[root@izj6cdhdoq5a5z7lfkmaeaz ~]#

 

3、for 循環

循環是一個結構,致使程序要重複必定的次數。

條件循環也是如此,當條件變爲假,循環結束。

3.1 for列表

for循環能夠用在序列裏,能夠循環遍歷,其語法以下:

for iterating_var in sequence:
    statements(s)

咱們講過的序列有字符串,元組和列表,好比咱們定義一個字符串a,而後遍歷a的各個字符並打印出來,信息以下:

In [1]: a='ABC'

In [2]: a
Out[2]: 'ABC'

In [3]: for i in a:
   ...:     print(i)
   ...:     
A
B
C

默認狀況下,使用print打印出來會帶有換行符,那麼咱們怎樣讓結果中不帶有換行符呢,以下:

In [6]: for i in a:
    print i,               # 在Python2.7.5中
   ...:     
A B C


for i in a:
    print(i,end='')        # 在Python3.6.1中

好比咱們能夠建立一個列表list1:

In [8]: list1=list()              # 生成一個空列表

In [9]: list1=[1,2,3,4]

In [10]: for i in list1:
   ....:     print i
   ....:     
1
2
3
4

生成一個1-9的列表,默認狀況下步長爲1:

In [11]: range(1,10)
Out[11]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

假如設置步長爲二、3分別是:

In [13]: range(1,10,2)
Out[13]: [1, 3, 5, 7, 9]

In [14]: range(1,10,3)
Out[14]: [1, 4, 7]

好比說咱們能夠利用for循環加range打印十個數:

In [15]: for i in range(0,10):
   ....:     print(i)
   ....:     
0
1
2
3
4
5
6
7
8
9

打印一個1-10的列表,咱們也能夠這樣寫:

#!/usr/local/python3/bin/python

print([i for i in range(1,11)])

打印的結果以下:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python a.py
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

咱們也能夠對 i 進行一些操做,代碼以下:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# cat a.py   
#!/usr/local/python3/bin/python

print([i for i in range(1,11)])
print([i+1 for i in range(1,11)])         # 讓遍歷出來的i都加上1
print([i*2 for i in range(1,11)])         # 讓遍歷出來的i都乘上2
print([i-2 for i in range(1,11)])         # 讓遍歷出來的i都減去2

運行的結果以下:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8]

好比咱們也能夠寫一個程序,求1-100的數相加的和,以下所示:

#!/usr/local/python3/bin/python

sum=0
for i in range(1,101):
    sum+=i

print(sum)

 

3.2 for字典

首先生成一個字典:

In [17]: dic={}

In [18]: dic.fromkeys('abcde',100)
Out[18]: {'a': 100, 'b': 100, 'c': 100, 'd': 100, 'e': 100}

利用for循環遍歷字典的k值:

In [21]: for k in dict1:
   ....:     print(k)
   ....:     
a
c
b
e
d

利用 for 循環遍歷字典的k值,並打印出 k 值和 values 值:

In [22]: for k in dict1:
    print(k),dict1[k]
   ....:     
a 100
c 100
b 100
e 100
d 100

進行格式化輸出與output美化以後:

In [23]: for k in dict1:
    print("%s : %s" % (k,dict1[k]))
   ....:     
a : 100
c : 100
b : 100
e : 100
d : 100

咱們也可使用items將字典輸出爲列表:

In [24]: dict1.it
dict1.items       dict1.iteritems   dict1.iterkeys    dict1.itervalues  

In [24]: dict1.items()
Out[24]: [('a', 100), ('c', 100), ('b', 100), ('e', 100), ('d', 100)]

使用for循環遍歷這個列表爲:

In [25]: for i in dict1.items():print i
('a', 100)
('c', 100)
('b', 100)
('e', 100)
('d', 100)

也能夠指定兩個變量接收值:

In [27]: for i,v in dict1.items():print i,v
a 100
c 100
b 100
e 100
d 100

直接對字典進行訪問,不加任何的方法的話,遍歷出來的是字典的 k 值:

In [29]: for i in dict1:print i            
a
c
b
e
d

若是想要輸出values呢,仍是能夠像前面同樣進行取值:

In [30]: for i in dict1:print i,dict1[i]
a 100
c 100
b 100
e 100
d 100

小時候背過的乘法口訣,咱們經過Python也能夠寫出來,代碼以下:

#!usr/local/python3/bin/python

for i in range(1,10):                      #指定有多少列
    for j in range(1,i+1):                 #嵌套指定有多少行,
        print("{0} * {1} = {2}".format(j,i,j*i),end='   ')  #格式化輸出,當前循環結束以前以空格分割
    print("\n")                                             #循環結束從新進入下一個循環的時候進行換行

最後結果以下:

[root@izj6cdhdoq5a5z7lfkmaeaz ~]# python nine.py
1 * 1 = 1   

1 * 2 = 2   2 * 2 = 4   

1 * 3 = 3   2 * 3 = 6   3 * 3 = 9   

1 * 4 = 4   2 * 4 = 8   3 * 4 = 12   4 * 4 = 16   

1 * 5 = 5   2 * 5 = 10   3 * 5 = 15   4 * 5 = 20   5 * 5 = 25   

1 * 6 = 6   2 * 6 = 12   3 * 6 = 18   4 * 6 = 24   5 * 6 = 30   6 * 6 = 36   

1 * 7 = 7   2 * 7 = 14   3 * 7 = 21   4 * 7 = 28   5 * 7 = 35   6 * 7 = 42   7 * 7 = 49   

1 * 8 = 8   2 * 8 = 16   3 * 8 = 24   4 * 8 = 32   5 * 8 = 40   6 * 8 = 48   7 * 8 = 56   8 * 8 = 64   

1 * 9 = 9   2 * 9 = 18   3 * 9 = 27   4 * 9 = 36   5 * 9 = 45   6 * 9 = 54   7 * 9 = 63   8 * 9 = 72   9 * 9 = 81
相關文章
相關標籤/搜索