您好,登錄后才能下訂單哦!
這篇文章給大家介紹python中有哪些流程控制函數,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
shell腳本是由系統命令、變量、流程控制三者組合而成的;
類比python程序,與shell中能夠實現很多功能的系統命令類似,python有很多可以實現不同功能的模塊;
變量方面,shell腳本有系統變量,有普通變量,有特殊位置變量,有特殊變量調用方式,有單個變量,也有數組,而python與一般高級語言一樣,變量有名稱、數據類型、調用方式(操作符和內置函數);
在流程控制方面,shell與各種高級語言都是類似的,基本的流程控制有順序、條件、循環三種方式,主要也是if,for,break,continue這幾種方式實現。
另外兩者處理基本內容,在編程思想方面更要深刻立即,有了程序思維,才可以編寫好程序。
我編寫了一個總結python流程控制和函數的腳本,腳本內容如下:
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
#################
#流程控制
#################
print '''
流程控制,是程序實現邏輯的重要方法,與程序的流程圖對應。
一般的流程分為順序、條件、循環三種方式,順序執行比較簡單,與自頂向下,面向過程的思路類似,條件判斷和循環控制就需要專門的語句和格式來實現。
流程控制語句,用來實現對程序流程的選擇、循環和返回等進行控制。
python中的主要流程控制包括 if判斷,for循環,break跳出,continue繼續等語句。
'''
print
print '''
程序要控制流程,就要對程序進行分塊,對于代碼來說,就有了“程序塊”和“作用域”的概念,大多數高級程序中,程序塊和作用域有不同的概念。
程序塊結構,是一種程序結構形式,使程序變得清晰,便于閱讀和修改。比如C、C++允許程序員按照自己的習慣在不同行之間,采取任意對齊方式。
作用域,是按照變量或者函數的可見性定義的程序子集。如果某個符號的名稱在給定的點是可見的,則稱該符號在作用域內。如C、C++采用大括號{}表達作用域。
python中用“縮進”這一種方式,同時表達程序塊和作用域的概念,相同縮進范圍內的代碼在一個程序塊和作用域,且同一個程序塊和作用域不能有不同的縮進。
python中用冒號:作為程序塊標記關鍵字,每個冒號:后面的程序塊必須有相同的縮進,縮進不同就會報錯。
高級語言允許定義空作用域,python必須有縮進,所以可以用pass來定義作用域,但不執行任何動作。
'''
print
#條件判斷
print '''
條件判斷,是依據指定的變量或表達式的結果,決定后續運行的程序,最常用的是if-else指令,可以根據條件是否成立來決定后續的程序。
if-else判斷可以單個執行,也可以組合多個指令進行復雜的判斷。
python中的if語句有3中語法形式。
#判斷if格式一:if條件為真,則執行某個代碼塊
if expression1:
block_for_True
#判斷if格式二:if條件為真,則執行某塊代碼;如果為假,則執行else下的代碼塊
if expression1:
block_for_True
else:
block_for_False
#判斷fi格式三:if條件為真,則執行某塊代碼;如果為假,則執行elif的條件判斷
if expression1:
block_for_expression1
elif expression2:
block_for_expression2
elif expression3:
block_for_expression3
else:
block_for_False
復雜判斷,每個if,elif,else塊中都可以放入多條語句,也可以放入判斷或循環.
'''
#條件判斷 if-elfi-else 程序示例:
import sys
param = None
if len(sys.argv) > 1:
param = int(sys.argv[1])
if param is None:
print "Alert"
print "The param is not set"
elif param < -10:
print "The param is samll"
elif param > 10:
print "The param is big"
else:
print "The param is middle"
#循環控制
print '''
循環控制,是因為在實際程序開發中,有許多具有規律性的重復操作,因此程序中需要重復執行某些語句。
一組被重復執行的語句,叫循環體,能否繼續重復,則取決于循環的終止條件。
循環語句有循環體和循環終止條件兩部分組成。python中循環語句有while語句和for語句兩種,while語句先循環,達到條件時終止循環,要避免死循環。
for循環先有條件判斷,后面在執行循環體,容易避免死循環。
'''
print
print '''
while語句的語法,判斷條件為真,則執行循環體,一直到表達式為假,終止執行,語法為:
while expression:
repeat_block
'''
#while循環程序示例:
myList = [ 'English', 'Chinese', 'Japanese', 'German', 'France' ]
while len(myList) > 0:
print "pop element out:", myList.pop()
print '''
python中的for語句與C#,java中的foreach語句類似,語法結構為:
for element in iterable:
repeat_block
含義為針對iterable中每個元素執行repeat_block,在循環體中可以以變量名element來訪問當前元素。循環內容可以是序列類型,集合set,或迭代器等。
在開發比較復雜的程序時,while或for循環語句的循環體,有時需要提前結束整個循環,或者在本輪尚未結束時提前開始下一輪循環,這就需要break或continue語句。
break語句會提前結束整個循環;
continue會在本輪循環體沒有結束時,直接開始下一輪循環。
'''
#for循環程序示例
myList = [ 'English', 'Chinese', 'Japanese', 'German', 'France' ]
for language in myList:
print "Current element is :", language
#循環控制break和continue程序示例:
count=0
while True:
#input = raw_input("Enter quit: ")
input = "quit"
# check for valid passwd
if input == "quit":
break
count = count + 1
if count%3 > 0:
continue
print "Please input quit!"
print "Quit loop successfully!"
#################
#函數
#################
print '''
從面向過程的編程方法,到函數式編程,就是函數在程序中起到的巨大作用。
在編程中使用函數,可以寫出優雅的程序結構,模塊化的結構,可以使程序簡單化,提高可讀性和可維護性。
函數有三個要素:函數名,參數,函數體;函數還可以根據需要,設置返回值。
python中函數定義的關鍵字是def,函數體這一程序塊,還是用冒號:作為關鍵字。
python中返回值可以是0個或多個,無需顯示定義返回值的數量和類型,只需要用return關鍵字返回,返回值只有值,調用時需要重新定義變量才能使用;
函數的參數可以是任意個,可以只定義參數名,也可以在定義參數名后,給參數定義默認值,但有默認值的參數一定要在后面;
在調用函數,傳入參數值時,可以按照參數定義順序只傳入值,也可以不按順序,傳入命名參數和值;
'''
#一般函數與返回值調用示例
def sum_01(x, y):
return x+y
def total(x, y, z):
sum_of_two = sum_01(x, y)
sum_of_three = sum_01(sum_of_two, z)
return sum_of_two, sum_of_three
def main_01():
print "return of sum:", sum_01(4, 6)
x, y = total(2, 6, 8)
print "return of total:", x, ", ", y
main_01()
#帶默認值的函數調用示例
def sum_02(x, y=10):
return x+y
def main_02():
print "return of sum(2, 3):", sum_02(2, 3)
print "return of sum(-4)", sum_02(-4)
main_02()
#不同方式參數賦值的函數調用示例
def sum_03(x, y, z):
return x + y + z
def main_03():
#下面兩種調用方式,意義相同
ret1 = sum_03(1, 2, 3)
ret2 = sum_03(y=2, z=3, x=1)
print "return of sum_03(1, 2, 3):", ret1
print "return of sum_03(y=2, z=3, x=1):", ret2
main_03()
print
print '''
變長參數的函數,就是參數個數可變、參數類型不定的函數。變長參數可以為函數設計提供更大的靈活性。
python中允許定義兩種類型的函數變長參數:
元組tuple變長參數:適用于未知參數的數量不固定,但在函數中使用這些參數無須知道參數名字的場合。在函數定義中用單星號*表示。
字典dict變長參數: 適用于未知參數的數量不固定,而且在函數使用參數時需要知道參數名字的場合。在函數定義中,用雙型號**表示。
'''
#使用元組tuple作為變長參數的示例
def show_message(message, *tupleName):
for name in tupleName:
print message, ", ", name
def main_tuple():
show_message("Good Morring", "Jack", "Evans", "Rose Hasa", 893, "Zion" )
main_tuple()
#使用字典dict作為變長參數的示例
def check_book(**dictParam ):
if dictParam.has_key('Price'):
price = int(dictParam['Price'])
if price > 100:
print "*******I want buy this book!*******"
print "The book information are as follow:"
for key in dictParam.keys():
print key, ": ", dictParam[key]
print ""
def main_dict():
check_book( author = 'James', Title = 'Economics Introduction' )
check_book( author = 'Linda', Title = 'Deepin in python', Date = '2015-5-1', Price = 302 )
check_book( Date = '2002-3-19', Title = 'Cooking book', Price = 20 )
check_book( author = 'Jinker Landy', Title = 'How to keep healthy' )
check_book( Category = 'Finance', Name = 'Enterprise Audit', Price = 105 )
main_dict()
print
print '''
匿名函數 Anonymous Function是一類無須定義函數名的函數或子程序,一般用于值在代碼中存在一次函數引用的場合。
因為只需要引用一次,所以無須聲明。python中用lambda語法定義匿名函數,只需表達式,而無須聲明。
除了沒有參數名,匿名函數定義和一般函數的定義都相同。
匿名函數定義格式如下:
lambda [arg1, arg2, ... ,argN]: expression
print (lambda x, y: x - y)(3, 4)
'''
#匿名函數示例如下
import datetime
def nameFunc(a):
return " I'm named function with param %s " % a
def call_func(func, param):
print datetime.datetime.now()
print func(param)
print ""
def main_lambda():
call_func(nameFunc, 'hello')
call_func(lambda x: x*2, 9)
call_func(lambda y: y*y, -4)
main_lambda()
執行結果如下:
# python func.py
流程控制,是程序實現邏輯的重要方法,與程序的流程圖對應。
一般的流程分為順序、條件、循環三種方式,順序執行比較簡單,與自頂向下,面向過程的思路類似,條件判斷和循環控制就需要專門的語句和格式來實現。
流程控制語句,用來實現對程序流程的選擇、循環和返回等進行控制。
python中的主要流程控制包括 if判斷,for循環,break跳出,continue繼續等語句。
程序要控制流程,就要對程序進行分塊,對于代碼來說,就有了“程序塊”和“作用域”的概念,大多數高級程序中,程序塊和作用域有不同的概念。
程序塊結構,是一種程序結構形式,使程序變得清晰,便于閱讀和修改。比如C、C++允許程序員按照自己的習慣在不同行之間,采取任意對齊方式。
作用域,是按照變量或者函數的可見性定義的程序子集。如果某個符號的名稱在給定的點是可見的,則稱該符號在作用域內。如C、C++采用大括號{}表達作用域。
python中用“縮進”這一種方式,同時表達程序塊和作用域的概念,相同縮進范圍內的代碼在一個程序塊和作用域,且同一個程序塊和作用域不能有不同的縮進。
python中用冒號:作為程序塊標記關鍵字,每個冒號:后面的程序塊必須有相同的縮進,縮進不同就會報錯。
高級語言允許定義空作用域,python必須有縮進,所以可以用pass來定義作用域,但不執行任何動作。
條件判斷,是依據指定的變量或表達式的結果,決定后續運行的程序,最常用的是if-else指令,可以根據條件是否成立來決定后續的程序。
if-else判斷可以單個執行,也可以組合多個指令進行復雜的判斷。
python中的if語句有3中語法形式。
#判斷if格式一:if條件為真,則執行某個代碼塊
if expression1:
block_for_True
#判斷if格式二:if條件為真,則執行某塊代碼;如果為假,則執行else下的代碼塊
if expression1:
block_for_True
else:
block_for_False
#判斷fi格式三:if條件為真,則執行某塊代碼;如果為假,則執行elif的條件判斷
if expression1:
block_for_expression1
elif expression2:
block_for_expression2
elif expression3:
block_for_expression3
else:
block_for_False
復雜判斷,每個if,elif,else塊中都可以放入多條語句,也可以放入判斷或循環.
Alert
The param is not set
循環控制,是因為在實際程序開發中,有許多具有規律性的重復操作,因此程序中需要重復執行某些語句。
一組被重復執行的語句,叫循環體,能否繼續重復,則取決于循環的終止條件。
循環語句有循環體和循環終止條件兩部分組成。python中循環語句有while語句和for語句兩種,while語句先循環,達到條件時終止循環,要避免死循環。
for循環先有條件判斷,后面在執行循環體,容易避免死循環。
while語句的語法,判斷條件為真,則執行循環體,一直到表達式為假,終止執行,語法為:
while expression:
repeat_block
pop element out: France
pop element out: German
pop element out: Japanese
pop element out: Chinese
pop element out: English
python中的for語句與C#,java中的foreach語句類似,語法結構為:
for element in iterable:
repeat_block
含義為針對iterable中每個元素執行repeat_block,在循環體中可以以變量名element來訪問當前元素。循環內容可以是序列類型,集合set,或迭代器等。
在開發比較復雜的程序時,while或for循環語句的循環體,有時需要提前結束整個循環,或者在本輪尚未結束時提前開始下一輪循環,這就需要break或continue語句。
break語句會提前結束整個循環;
continue會在本輪循環體沒有結束時,直接開始下一輪循環。
Current element is : English
Current element is : Chinese
Current element is : Japanese
Current element is : German
Current element is : France
Quit loop
從面向過程的編程方法,到函數式編程,就是函數在程序中起到的巨大作用。
在編程中使用函數,可以寫出優雅的程序結構,模塊化的結構,可以使程序簡單化,提高可讀性和可維護性。
函數有三個要素:函數名,參數,函數體;函數還可以根據需要,設置返回值。
python中函數定義的關鍵字是def,函數體這一程序塊,還是用冒號:作為關鍵字。
python中返回值可以是0個或多個,無需顯示定義返回值的數量和類型,只需要用return關鍵字返回,返回值只有值,調用時需要重新定義變量才能使用;
函數的參數可以是任意個,可以只定義參數名,也可以在定義參數名后,給參數定義默認值,但有默認值的參數一定要在后面;
在調用函數,傳入參數值時,可以按照參數定義順序只傳入值,也可以不按順序,傳入命名參數和值;
return of sum: 10
return of total: 8 , 16
return of sum(2, 3): 5
return of sum(-4) 6
return of sum_03(1, 2, 3): 6
return of sum_03(y=2, z=3, x=1): 6
變長參數的函數,就是參數個數可變、參數類型不定的函數。變長參數可以為函數設計提供更大的靈活性。
python中允許定義兩種類型的函數變長參數:
元組tuple變長參數:適用于未知參數的數量不固定,但在函數中使用這些參數無須知道參數名字的場合。在函數定義中用單星號*表示。
字典dict變長參數: 適用于未知參數的數量不固定,而且在函數使用參數時需要知道參數名字的場合。在函數定義中,用雙型號**表示。
Good Morring , Jack
Good Morring , Evans
Good Morring , Rose Hasa
Good Morring , 893
Good Morring , Zion
The book information are as follow:
Title : Economics Introduction
author : James
*******I want buy this
The book information are as follow:
Date : 2015-5-1
Price : 302
Title : Deepin in python
author : Linda
The book information are as follow:
Date : 2002-3-19
Price : 20
Title : Cooking book
The book information are as follow:
Title : How to keep healthy
author : Jinker Landy
*******I want buy this
The book information are as follow:
Category : Finance
Price : 105
Name : Enterprise Audit
匿名函數 Anonymous Function是一類無須定義函數名的函數或子程序,一般用于值在代碼中存在一次函數引用的場合。
因為只需要引用一次,所以無須聲明。python中用lambda語法定義匿名函數,只需表達式,而無須聲明。
除了沒有參數名,匿名函數定義和一般函數的定義都相同。
匿名函數定義格式如下:
lambda [arg1, arg2, ... ,argN]: expression
print (lambda x, y: x - y)(3, 4)
2017-03-09 20:20:31.264415
I
關于python中有哪些流程控制函數就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。