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

[经验分享] 2.关于python的if判断,循环总结。

[复制链接]

尚未签到

发表于 2018-8-8 10:52:17 | 显示全部楼层 |阅读模式
  一.if判断。
  if判断的主要作用就是根据指定的条件表达式,做出不同的动作,操作不同的代码。
  if判断大致可以分为三种,分别是单分支,双分支,多分支。
  1.单分支if语句。
  python中的单分支if语句格式如下:
  if  表达式:
  执行的代码
  下面是例子:
  num = 10
  if num == 10:  (当num变量中的值等于10,条件为真,执行下面的print “ok”代码。)
  print 'ok'
  当num变量不等于10的时候,什么都不会执行。
  num = 1300000
  if num == 10:
  print 'ok'
  简单的总结下,就是说,单分支if语句就是,条件表达式为True时,执行下面的代码,如果为False,则什么都不执行。
  2.双分支if语句(if+else)。
  双分支if语句就是,判断一个条件表达式,如果这个表达式为True执行一种代码,如果表达式为False,执行else下的代码。
  格式如下:
  if 条件表达式:
  条件表达式为True时,执行的代码。
  else:
  条件表达式为False时,执行的代码。
  例如:
  num = 1300000
  if num == 10:   (当num等于10的时候,执行print “ok”,如果不等于10,执行print "error!")
  print 'ok'
  else:
  print 'error!'
  error!
  3.多分支if 语句(if + elif+elif.......+else)。
  多分支语句,首先会判断一个条件表达式,如果表达式为True执行一种代码,一旦不为真,则继续判断第二个条件表达式使用elif做开头,第二个条件表达式是否为真,如果第二个条件表达式为真,则执行第二个条件表达式下面的代码,如果第二个条件表达式也不为真,则继续找下面的elif 去找第三个条件表达式.....以此类推,如果后面没有其他表达式了,直接执行else下面的代码(else可以不写)。
  格式如下:
  if 条件表达式1:
  条件表达式1为真时执行的代码。
  elif 条件表达式2:    #(当条件表达式1不为真时,会检查条件表达式2)
  条件表达式2为真时执行的代码。
  elif 条件表达式3: #(同理,当上面的条件表达式2不为真时,会检查条件表达式3)
  条件表达式3为真时执行的代码。
  elif .......................
  else:
  当以上所有的条件表达式全都为False时,执行的代码。
  4.if语句的总结。
  4.1 在if判断的表达式中,可以使用 is , is not, not, and,or 等逻辑运算符。
  4.2 当使用多重表达式的时候,可以使用()括号来指定优先判断的顺序,当然,括号还可以增加条件表达式的可读性。
  4.3一个if判断最多只有一个else但是可以有多个elif。
  最后在补充一点关于条件表达式的知识点。
  所有的标准对象,都可以用于布尔值的测试,同类型的对象都可以比对大小。
  还有就是,以下对象的布尔值都等于False!!需要特别注意!
  None,False,0,0.0+0.0j, “ ”(空字符串),[ ]空列表,()空元组,{}空字典。
  以上的对象都为False。
  5.三元表达式。
  这个没啥好解释的,和if判断特别像,举个例子就明白了。
  print "ok" if 10000 < 100 else "error"
  error
  print "ok" if 1 < 100 else "error"
  ok
  二.while循环。
  while循环就是,以满足某个条件为前提,重复的去做某事。
  while循环包含了两种循环模式,一种是死循环(无限循环),另外一种是条件计数循环。
  这里的条件,就是前面说的条件表达式。
  在说这两种while循环之前,先说下while循环的语法,下面是语法格式:
  while 条件表达式:
  条件为真时执行的代码。
  #(当条件为真时,下面的这段代码会一直执行,直到条件为假,循环结束。)
  1.while计数循环的示例。
  举个简单的例子,现在需要利用while循环打印出1~10的数字。
  a = 1
  while a < 11:
  print a
  a += 1
  1
  2
  3
  4
  5
  6
  7
  8
  9
  10
  2.死循环,一直循环,直到海枯石烂。
  while True:
  print “ok”
  #True是布尔值,代表真,条件为真,这个循环就会一直执行下去,直到break跳出或者程序终止。
  死循环还可以这样用。
  tag=True
  count=0
  while tag:
  if count == 9:
  tag=False
  print 'the loop is %s' %(count)
  count+=1
  3.关于while循环的else部分!
  python 中的while循环和其他编程语言的while循环有一些不同,这个不同之处就是python中的while可以和if一样,支持else!
  count=0
  while (count < 9):
  count+=1
  if count == 3:
  print '跳出本次循环,即这一次循环continue之后的代码不再执行,进入下一次循环'
  continue
  print'the loop is %s' %(count)
  else:
  print 'end'
  执行一遍上面的代码,就可以看出,当while后面的条件表达式为假之后,else代码块中的代码,
  print 'end'     就被执行了。
  也就是说,循环不被break打断,即正常结束,就会执行else后代码块。
  如果循环被break打断,else后面的代码块是不会执行的。
  三.for循环。
  for 循环和while 循环有着本质上的不同,for循环是一种迭代循环机制,而while循环是种条件循环。
  如果要为一个集序列或者其他可迭代对象进行迭代,让序列中的每一个元素都做一遍相同的操作,使用for循环最合适不过。
  for 循环几本语法如下:
  for 迭代变量 in 迭代器或其他可迭代序列:
  所要执行的代码块
  假如有一个列表,现在需要循环一个列表中的内容,就可以使用for循环来做。
  names = ["Leo","suhaozhi","ayumi"]
  for i in names:
  print "my name is %s" %(i)
  my name is Leo
  my name is suhaozhi
  my name is ayumi
  还可以使用索引进行迭代。
  names = ["Leo","suhaozhi","ayumi"]
  for i in range(len(names)):
  print "my name is %s" %(names)
  还可以使用enumerate函数显示每个元素的索引,序号。
  names = ["Leo","suhaozhi","ayumi"]
  for i,n in enumerate(names,1):
  print "index:%s name:%s" %(i,n)
  index:1 name:Leo
  index:2 name:suhaozhi
  index:3 name:ayumi
  上面简单演示了,列表在for循环的迭代方法,元组和字符串就没必要说了,迭代的方法和列表一模一样。
  下面需要重点说说如何使用for循环去遍历字典。
  四.使用for循环遍历字典。
  直接把字典扔进for循环里循环,只能拿到这个字典中所有的key,并不能连同value一起被遍历,我们可以试试看。
  d1 = {'k1':'v1','k2':'v2','k3':'v3'}
  for i in d1:
  print i
  k3
  k2
  k1
  如果要是同时需要同时对一个字典的key和value进行遍历可以试试字典中的items方法和iteritems方法。
  d1 = {'suhaozhi':'13333333333','leo':'15555555555','eric':'11111111111'}
  for n,p in d1.items():
  print "name:%s phone_number:%s" %(n,p)
  name:suhaozhi phone_number:13333333333
  name:eric phone_number:11111111111
  name:leo phone_number:15555555555
  然而。。。在数据量特别大的情况下,特别不推荐是哟哦那个items方法进行迭代,因为效率实在太低了!!!下面这种通过迭代器来迭代,代码的执行效率会更高!!
  d1 = {'suhaozhi':'13333333333','leo':'15555555555','eric':'11111111111'}
  for n,p in d1.iteritems():
  print "name:%s phone_number:%s" %(n,p)
  name:suhaozhi phone_number:13333333333
  name:eric phone_number:11111111111
  name:leo phone_number:15555555555
  列表中的items和iteritems最大的区别就是,items方法返回的是个列表,字典中的每个键值对作为这个列表中的一个元组,而iteritems返回的则是个迭代器,只要去遍历,从迭代器中依次生成。
  最后补充一下,在python中for循环也是和while循环一样,支持else语法的,只要所有的内容循环结束,不被break打断,else中的代码块就会被执行,这一点和while是一样的。
  五.关于break和continue。
  1.break 用于彻底结束循环(仅限于本层),跳出程序中所有的循环,如果循环下面还有其他代码,其他的代码会正常执行,不会影响到循环外的代码。
  记得刚开始接触python编程的时候,犯了个特别低级的错误,就是总把exit()当break用....现在才明白,exit和break的区别,一种是彻底退出python程序,另外一种则是跳出本层循环!!只是本层!!
  现在要去循环一个列表,列表当中有5个数字,循环到3时,就不在向下遍历,输出一个end字符。
  l1 = [1,2,3,4,5]
  l1 = [1,2,3,4,5]
  for n in l1:
  print n
  if n == 3:
  break
  print "end"
  输出结果如下:
  1
  2
  3
  end
  输出到3之后,break跳出本层循环,然后输出了end。
  2.continue 跳出本次循环,跳到下一轮循环的开始处。(这个countinue在使用while循环的时候用的特别多。)
  有一个列表现在需要循环,列表当中有5个数字,for循环遍历到每个数字的时候输出到屏幕一次,到数字3的时候跳过,这种情况就可以使用continue来实现。
  l1 = [1,2,3,4,5]
  for n in l1:
  if n == 3:
  continue
  else:
  print n
  输出结果如下:
  1
  2
  4
  5
  六.列表推导式,轻量级循环。
  个人理解python中的轻量推导式就是用来生成列表的轻量级for循环。
  如果只想打印出那些在10以内能被3整除的平方数,只需要通过添加一个if部分在推导式中就可以完成:
  print [n * n for n in range(10) if n % 3 == 0]
  [0, 9, 36, 81]

运维网声明 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-548575-1-1.html 上篇帖子: CentOS6.x升级安装python2.7 下篇帖子: Easticsearch 数据迁移至influxdb【python】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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