设为首页 收藏本站
查看: 2250|回复: 0

[经验分享] python流程控制、函数总结

[复制链接]

尚未签到

发表于 2018-8-15 09:29:34 | 显示全部楼层 |阅读模式
#!/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()

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-552009-1-1.html 上篇帖子: python利用微信公众号报警代码 下篇帖子: Python学习记录day8-ygqygq2
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表