07_Python的控制判斷循環語句1(if判斷for循環)_Python編程之路

Python的數據類型在前幾節咱們都簡單的一一介紹了,接下來咱們就要講到Python的控制判斷循環語句java

 

在現實編程中,咱們每每要利用計算機幫咱們作大量重複計算的工做,在這樣的狀況下,須要機器能對某個條件進行判斷,或是對某個行爲進行重複操做python

這時咱們就必需要知道如何去編寫循環判斷語句算法

 

if... elif... else

if也就是若是的意思,後面須要加一個判斷條件,若是判斷條件爲真,則執行if下的操做,若是爲假則跳過操做編程

注意在每一個判斷條件後面要加上冒號,且if下面的語句要注意縮進bash

In [1]: num = 20

In [2]: if num > 10:
   ...:     print("條件成立")
   ...:     
條件成立

  

tips:「 = 」  和 「 == 」的區別:通常的一個等號表明的是賦值,在循環中只能用來和對象名進行比較,「 == 」雙等號能夠直接用來與值進行比較,例如數字,和字符串函數

例如對象

In [3]: name = "susmote"  

In [4]: if name == "susmote":
   ...:     print("名字是susmote")
   ...:     
名字是susmote

In [5]: if name = "susmote":         #若是不用「==」比較值,則會報語法錯誤
   ...:     print("名字是susmote")
   ...:     
  File "<ipython-input-5-06510f3ebd56>", line 1
    if name = "susmote":
            ^
SyntaxError: invalid syntax

 其餘的關係運算符以下blog

大於等於  >=排序

小於等於 <=  索引

 

elif在其餘語言中叫 「 else if 」,python簡化了這個表達式,elif通常是用來判斷多個表達式的,也就是說在一個判斷語句中能夠有多elif,這個也有點相似於其餘語言的switch case,固然也要加上else

In [8]: num = 20

In [9]: if num > 20:
   ...:     print("num大於20")
   ...: elif num == 20:
   ...:     print("num等於20")
   ...: elif num < 20:
   ...:     print("num小於20")
   ...:       
num等於20

  

else下面的執行語句只有當前面的條件都不知足時,纔會執行,else在一個判斷語句中也是可選的,但爲了程序能更清晰的運行,建議仍是都加上

一個完整的if,, elif ... else語句

num = input("請輸入一個不大於5的數:  ")
num = int(num)
if num == 0:
        print("這個數字是0")
elif num == 1:
        print("這個數字是1")
elif num == 2:
        print("這個數字是2")
elif num == 3:
        print("這個數字是3")
elif num == 4:
        print("這個數字是4")
elif num == 5:
        print("這個數字是5")
else :
        print("你輸入的數不符合要求")

  運行結果

[root@localhost ~]# python3 a.py 
請輸入一個不大於5的數:  3
這個數字是3
[root@localhost ~]# python3 a.py 
請輸入一個不大於5的數:  14
你輸入的數不符合要求

 

while

while循環的正肯定義是 while()   括號裏面須要加一個判斷條件,若是裏面的判斷爲真,則一直執行下面的語句,知道while的判斷條件爲假才跳出循環

In [1]: num = 10

In [2]: while(num > 0 ):
   ...:     print(num)
   ...:     num -= 1
   ...:     
10
9
8
7
6
5
4
3
2
1

  

 

固然若是條件一直爲真則造成死循環,裏邊的語句一直會執行,通常程序仍是儘可能不要出現死循環,死循環很耗系統資源

在這裏講一下條件判斷中經常使用的布爾類型:

布爾類型只有真和假兩個值,True or Flase

通常全部的字符串都表明真,數字中只有0是表明假 false

In [15]: while(0):
    ...:     print("條件爲假,什麼都不作")
    ...:     

  

for

for循環在其餘語言中,如C,java,只能經過數字進行循環迭代,Python中你能夠對任意有順序的數據進行for循環獲取值,如列表和字符串

python中for循環的語句結構    for  item in sequence       item表明獲取到的每一個值,sequence表明可循環的數據,列表或字符串

例如

In [16]: info = ["susmote", "18", "13488888888"]

In [17]: for item in info:
    ...:     print(item)
    ...:     
susmote
18
13488888888

  

 

若是是操做一個列表的話,你還能夠對他進行其餘的改變,如經過for循環對列表內元素進行排序(最原始的辦法,一個個判斷)

In [28]: for i in num:
    ...:     if i < num[0]:
    ...:         num.remove(i)
    ...:         num.insert(0, i)
    ...:     elif i < num[1]:
    ...:         num.remove(i)
    ...:         num.insert(1,i)
    ...:     elif i < num[2]:
    ...:         num.remove(i)
    ...:         num.insert(2, i)
    ...:     elif i < num[3]:
    ...:         num.remove(i)
    ...:         num.insert(3, i)
    ...:     elif i < num[4]:
    ...:         num.remove(i)
    ...:         num.insert(4,i)
    ...:         

In [29]: num
Out[29]: [1, 3, 5, 6, 7, 9]

  後續在講排序算法

 

range()

若是你須要重複的生成一組有規律的數字,這時你就須要用到range函數了,他可以生成遞進的數字

例如與for循環結合

In [34]: for i in range(5):
    ...:     print(i)
    ...:     
0
1
2
3
4

  默認是從0開始迭代生成的

range能夠傳三個參數  range( a, b ,c )        a表明開始的數字,b表明結束的數字,c表明增量(可爲負數)

調用range方法時只傳一個參數,a默認爲0, b則是你傳入的參數,c默認爲1

調用range方法時傳兩個參數,a就是第一個參數,b是後面一個參數,c默認爲1,  記住包頭不包尾

例如

In [42]: for i in range(2, 6):
    ...:     print(i)
    ...:     
2
3
4
5

In [43]: for i in range(2, 10, 2):
    ...:     print(i)
    ...:     
2
4
6
8

  

固然也能夠爲負數

In [44]: for i in range(-10, -80, -10):
    ...:     print(i)
    ...:     
-10
-20
-30
-40
-50
-60
-70

  

對於一個列表,你還能夠遍歷他的索引,獲取值

In [45]: weekdays = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunda
    ...: y"]

In [46]: for i in range(len(weekdays)):
    ...:     print(i, weekdays[i])
    ...:     
0 Monday
1 Tuesday
2 Wednesday
3 Thursday
4 Friday
5 Saturday
6 Sunday

  

通常咱們在進行上述操做時,爲了更方便,咱們都是使用 enumerate()方法的,他能直接迭代生成索引,這個以後再講

range()返回的值不是一個列表,只是一個對象,咱們把這種對象叫作可迭代對象

咱們不只可以經過for循環輸出對象迭代的值,還能直接經過 list() 直接生成列表

In [47]: print(range(10))
range(0, 10)

In [48]: list(range(10))
Out[48]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
相關文章
相關標籤/搜索