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

[经验分享] python 流程控制

[复制链接]

尚未签到

发表于 2018-8-8 10:21:57 | 显示全部楼层 |阅读模式
  Python 用冒号: 作为程序块标记关键字。
  注意:每个用冒号':'标记的程序块内的代码必须有相同的缩进
  if/elif/else 判断语句
  [root@SN28 opt]# cat test.py
  #!/usr/bin/env python
  # -- coding:utf-8 --
  if name =="main":
  print "Hello"
  print "World"
  [root@SN28 opt]# ./test.py
  Hello
  World
  Python中可以使用pass语句来定义作用域,但不做任何操作
  # -- coding:utf-8 --
  if name =="main":
  pass
  技巧 : pass用于需要写代码,但实际什么也不做的场合

判断语句3种
  if expression1:
  block_for_True

if expression1:
  block_for_True
  else:
  block_for_False

  if expression1:
  block_for_expression1
  elif  expression2:
  block_for_expression2
  ....
  elif   expression3:
  block_for_expression3
  else:
  block_for_False
  实例:
  #!/usr/bin/env python
  # -- coding:utf-8 --
  import sys
  param=None
  if len(sys.argv) > 1:
  param=int(sys.argv[1])
  if param is None:
  print "Alert"
  print "please input a number."
  elif param < -10:
  print 'too small'
  elif param > 10:
  print 'too big'
  else:
  print &quot;so good&quot;
  注意: None   可以”=“赋值None,在条件判断中 用 is  None
  sys.argv 是一个系统List变量,sys.argv[0]为程序名,从第二个(索引1)开始的其他元素为字符串类型的控制台输入参数。
  循环语句
  1.
  while  expression:
  repeat_block
  2.
  for  element in iteralbe:
  repeat_block


  • break    continue  实例:列表pop()动态删除元素,len()动态判断列表元素个数
      #!/usr/bin/env python
      # -- coding:utf-8 --

  fruits=['apple','banana','orange','egg']
  while len(fruits)>0:
  print &quot;pop element out&quot;,fruits.pop()
  [root@SN28 opt]# ./test.py
  pop element out egg
  pop element out orange
  pop element out banana
  pop element out apple
  [root@SN28 opt]#
  #!/usr/bin/env python
  # -- coding:utf8 --
  import random
  while True:
  x=random.randint(1,6)
  print (x)
  if x==6:break
  注释:True:用于死循环。 break 退出循环
  列表
  #!/usr/bin/env python
  # -- coding:utf-8 --
  myList=['Englis','chinese','Japanese','German','France']

for element in myList:
  print &quot;current language is &quot;,element
  [root@SN28 opt]# ./test.py
  current language is  Englis
  current language is  chinese
  current language is  Japanese
  current language is  German
  current language is  France
  -----------等同以下效果-------------------
  #!/usr/bin/env python
  # -- coding:utf-8 --
  myList=['Englis','chinese','Japanese','German','France']
  i=0
  for element in myList:
  print &quot;current language is &quot;,i,myList
  i=i+1

#!/usr/bin/env python
  # -- coding:utf-8 --
  myList=['Englis','chinese','Japanese','German','France']
  for i,element in enumerate(myList):
  print &quot;current language is &quot;,i,myList

  #!/usr/bin/env python
  # -- coding:utf-8 --
  def pick(x):
  myList=['Englis','chinese','Japanese','German','France']
  return myList[x]
  alist=[0,1,2,3,4]
  choices=map(pick,alist)
  for choice in choices:
  print choice
  解释:
  map(执行用的函数,容器变量)
  此函数会自动把每一个在容器变量中的元素都读去出来,放到执行用函数中当作参数,在把返回值合并到一个容器变量中。
  map函数中设置pick和alist,它把alist中的每一个数值都放入pick中执行,在搜集pick所返回来的每一个值,最后都放到choices容器变量中
  实例
  #!/usr/bin/env python
  # -- coding:utf8 --
  alist=range(1,9)
  y=map(lambda x:x3,alist)
  for i,element in enumerate(y,1):
  print &quot;{}3 ={}&quot;.format(i,element)
  [root@localhost opt]# ./test.py
  13 =3
  23 =6
  33 =9
  43 =12
  53 =15
  63 =18
  73 =21
  83 =24
  迭代器  enumerate   map   filter
  例外处理
  在处理数据时,经常遇到例外,使程序产生错误信息并突然中断程序执行。把例外都拦截下来,加以处理,就是所谓的例外处理
  #!/usr/bin/env python
  # -- coding:utf8 --
  while True:
  try:
  age=int(input(&quot;Please input age:&quot;))
  break
  except:
  print &quot;please enter a number&quot;
  if age < 15:
  print 'you are too yong'
  凡是在try之内的语句只要有任何异常,程序控制流程就会自动跑到except之下的语句在程序中处理例外的情况。
  处理不同种类的例外
  [root@localhost opt]# cat test.py
  #!/usr/bin/env python
  # -- coding:utf8 --
  import os,sys
  try:
  os.remove('filename')
  except Exception as e:
  print(e)
  

e_type,e_value,e_tb=sys.exc_info()  
print("种类:{}\n消息:{}\n信息:{}".format(e_type,e_value,e_tb))
  

  [root@localhost opt]# ./test.py
  [Errno 2] No such file or directory: 'filename'
  种类:<type 'exceptions.OSError'>
  消息:[Errno 2] No such file or directory: 'filename'
  信息:<traceback object at 0x7f9d99c6fb00>
  说明:需要导入os,sys
  先通过Exception 来捕捉所有的例外,并把例外事件以e当作是记录的对象,使用print(e)把例外的信息打印出来。

运维网声明 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-548539-1-1.html 上篇帖子: Python_类与实例的属性关系 下篇帖子: Python 自动补全模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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