Python學習:5、if語句,while語句,函數以及商城示例
阿新 • • 發佈:2018-06-13
else 並且 參數傳遞 class color code 多個參數 else語句 參數
條件控制語句
if語句
簡單if判斷語句,當if後面的條件為真的時候,執行print(‘yes‘),否則執行else裏面的語句,print(‘No‘)
if True: print(‘yes‘) else: print(‘No‘)
多次判斷
首先判斷pd是否大於零,否則判斷pd是否小於零
pd = input(‘請輸入數字:‘) pd = int(pd) #使用input拿到用戶輸入的值得類型都是字符串 if pd > 0: print(‘輸入的為正值‘) elif pd < 0: print(‘輸入的為負值‘) else:print(‘輸入的為零‘)
三目運算
三目運算就是將if else語句通過一條語句表示出來,格式如下
name=值1 if 條件 else 值2 如果"條件"成立就把"值1"賦值給"name" 如果"條件"不成立就把"值2"賦值給"name"
name="alexsel" if 1==1 else "eric" print(name) 輸出結果: alexsel
三目運算的的目的就是減少代碼量。
循環語句
一、for循環
遍歷輸出有多個元素的數據,例如一個字符串,一個列表。使用in拿到後面變量裏的單個元素。
str = "alexsel" list = [1,2,3,‘alexsel‘] for i in str: print(i) print(‘----------------‘) for k in list: print(k) 輸出結果: a l e x s e l ---------------- 1 2 3 alexsel
可以使用break提前結束循環
for i in range(10): #使用range一個可循環的0到9的數列。 print(i) if i == 5: print(‘結束循環‘) break #如果不提前結束就輸出1到9 輸出結果: 0 1 2 3 4 5 結束
使用continue跳過一次循環
for i in range(10): if i == 5: continue #使用這個語句之後,跳過本次循環中在continue之後的語句,在這裏跳過了print(i),5沒有輸出 print(i) 輸出結果: 0 1 2 3 4 6 7 8 9
二、while循環
while一般形式如下
while 條件: 語句
當條件為真的時候一直執行,直到條件為假。
var = 1 while var < 10: print(var) var += 1 輸出結果: 1 2 3 4 5 6 7 8 9
當條件一直為真,會無限循環。
var = 1 while var == 1: print(var) 輸出結果: 1 1 1 1 1 ....
while循環中使用else,當while循環為假的時候,執行else中的語句。
i = 0 while i < 5: print(i) i += 1 else: print(‘i等於5‘) 輸出結果: 0 1 2 3 4 i等於5
函數
一、創建函數
1、創建一個函數的基本格式
def 函數名(形式參數): 函數體 return "123"
二、函數的返回值
函數執行了return之後就不再執行下面的代碼,並且將返回的值給調用函數之後賦予的變量。
def f2(): name = ‘alexsel‘ return name tem = f2() print(tem) 輸出結果: alexsel
三、函數的調用
使用函數的名字調用函數
def f1(): print(‘我被調用了‘) f1() #在這裏函數被調用
四、向函數中傳入參數
傳入函數中的參數需要一一對應,在下面的示例中,alexsel將值傳給name,50傳給age,是第幾個,就傳遞給第幾個。
def obj(name,age): return name+‘的年齡為‘+str(age) #這裏傳入的參數的類型為數值,我們要做字符串拼接,將它轉換為字符串 str = obj(‘alexsel‘,50) print(str) 輸出結果: alexsel的年齡為50
五、函數可以有默認參數
一個函數中的參數可以設置默認值,當沒有對參數傳遞值得時候,就使用默認值,有默認值的參數應該放在沒有默認參數的後面。
def drive(name="我"): #name這個有默認參數,有默認參數的應放在無默認參數的後面,否則報錯,無默認參數的必須傳參數,有默認參數的可以不傳參數 temp=name+"開車" return temp ret=drive("you") print(ret) ret=drive("he") print(ret) ret=drive() print(ret) 輸出結果: you開車 he開車 我開車
六.動態參數
1.可以接收多個值的動態參數
def a1(*a): # 動態參數,可以接受多個值 print(a, type(a)) # 現在a的類型為元組,把你傳入的實參當作元組的元素 a1(123, 3, 444, 555, [11, 22, 33]) # 這裏的傳入的列表視為一個元素 輸出結果: ((123, 3, 444, 555, [11, 22, 33]), <type ‘tuple‘>)
2.以及將接收多個參數轉換為字典的動態參數
def a2(**b): # 動態參數,接收的參數轉換為字典 print(b, type(b)) # b的類型為字典,傳過來的參數轉換為字典 a2(k1=123, k2=345) 輸出結果: ({‘k2‘: 345, ‘k1‘: 123}, <type ‘dict‘>)
def a3(p, *a, **aa): #這裏的a拿到傳入的第一個參數,*a拿到不是字典類型的參數,**拿到傳入是字典類型的參數 print(p, type(p)) print(a, type(a)) print(aa, type(aa)) a3(11, 22, 33, k1=123, k2=456) # 在這裏自動把11給p,22,33給*a,把k1=123,k2=456給**a # **要在*前面,這兩個要在一般參數數的後面,而且實參也要按此排序 輸出結果: (11, <type ‘int‘>) ((22, 33), <type ‘tuple‘>) ({‘k2‘: 456, ‘k1‘: 123}, <type ‘dict‘>)
3、為動態參數傳入 列表、字典、元組的示例:
將字典傳入函數中不能直接傳遞,需要在傳遞的函數之前添加**
def f1(*args): print(args) li = [11, 22, 33] f1(li) # 這樣傳參數則這個args元組的第一個元素為列表[11,22,33] f1(*li) # 這樣傳參數是會把這個列表的每一個元素一一傳過去結果會是 # 這個列表的每一個元素會成為args元組的每一個元素(11,22,33) def f2(**kwargs): print(kwargs) dic = {"k1": 123, "k2": "aas"} #f2(dic) # 這樣傳參數報錯 f2(k1=dic) # 這樣傳參數會變成kwargs={"k1":{"k1":123,"k2":"aas"} f2(**dic) # 要想把dic裏的元素一個一個傳過去,格式為kwargs={"k1":123,"k2":"aas"},需要在dic前加** 輸出結果: ([11, 22, 33],) (11, 22, 33) {‘k1‘: {‘k2‘: ‘aas‘, ‘k1‘: 123}} {‘k2‘: ‘aas‘, ‘k1‘: 123}
七、局部變量、全局變量
1、局部變量
局部變量一般在函數中定義,它的作用域也僅僅只在這個函數中可以調用,在函數之外不能調用。
def f1(): a=123 print(a)#這個a為局部變量只有這個函數裏才能用 f1() print(a)#在函數之外輸出這個a會報錯 輸出結果: 123 然後是報錯信息
2.全局變量
a = 1234 # 全局變量 b = 1000001 def f1(): a = 123 # 這個a為局部變量只有這個函數裏才能用 print(a) # 在這裏輸出的是局部變量,在自己的函數中首先尋找自己函數中是否定義了這個變量,如果沒有就使用全局變量 print(b) f1() 輸出結果: 123 1000001
如果想在函數之外調用函數中定義的變量,可以在函數中定義一個全局變量
a = 1234 def f1(): global a #在這裏定義了一個全局變量,在下面對全局變量進行重新賦值 a = 123 print(a) # 輸出結果為:123 f1() print(a) # 輸出結果為:123 輸出結果: 123 123
Python中還有大量的內置函數,我們在以後的學習中會繼續講解,今天的學習到此結束了,如果有錯誤的地方歡迎大家指出。
Python學習:5、if語句,while語句,函數以及商城示例