Python基础三(选择,循环)

来源:互联网 发布:excel数据分析教程 编辑:程序博客网 时间:2024/06/09 06:22


  首先我们知道程序的执行有三种结构:顺序、选择、循环三种结构,而为了方便我们书写和多次利用我们就需要把一段代码封装器来,这就是方法。今天我就说的是程序的基本结构的格式和方法。

  注:所有的程序都可以通过基本结构(顺序,选择,循环)书写出来。

流程结构

顺序结构语句

  • 1:什么是流程控制语句
    • 流程控制语句:可以控制程序的执行流程。
  • 2:流程控制语句的分类
    • 顺序结构
    • 选择结构
    • 循环结构
  • 3:执行流程:
    • 从上往下,依次执行。

选择结构语句

if 语法

  • if-else的使用格式
if 条件:    满足条件时要做的事情1    ...(省略)...else:    不满足条件时要做的事情1    ...(省略)...
  • elif的功能
if 条件1:    满足条件1时要做的事情    ...elif 条件2:    不满足条件1,满足条件2时要做的事情    ...else:    不满足条件12时要做的事情    ...

and…or语法

   Python的and/or操作与其他语言不同的是它的返回值是参与判断的两个值之一,所以我们可以通过这个特性来实现Python下的 a ? b : c !

  Python下我们可以这么用:“ a and b or c ”(此方法中必须保证b必须是True值),python自左向右执行此句,先判断a and b :如果a是True值,a and b语句仍需要执行b,而此时b是True值!所以a and b的值是b,而此时a and b or c就变成了b or c,因b是True值,所以b or c的结果也是b;如果a是False值,a and b语句的结果就是a,此时 a and b or c就转化为a or c,因为此时a是 False值,所以不管c是True 还是Flase,a or c的结果就是c

当bool and a or b相当于bool? a: b
注:但是特殊情况是,若a为假,则不会相当于,而是返回b
解决办法:用 (bool and [a] or [b])[0]代替

循环结构

while语法

while 条件:    条件满⾜时,做的事情1    条件满⾜时,做的事情2    条件满⾜时,做的事情3    ...(省略)...

for语法

for 临时变量 in 列表或者字符串等:    循环满⾜条件时执⾏的代码else:    循环不满⾜条件时执⾏的代码

例子

 name = 'dongGe'    for x in name:        print(x)

break的作⽤:⽤来结束整个循环
continue的作⽤:⽤来结束本次循环,紧接着执⾏下⼀次的循环

Python 跳出多重循环

方法1:自定义异常

# -*- coding:utf-8 -*-  """ 功能:python跳出循环 """  # 方法1:自定义异常  class Getoutofloop(Exception):      pass  try:      for i in range(5):          for j in range(5):              if i == j == 2:                  raise Getoutofloop()              else:                  print (i, '----', j)  except Getoutofloop:      pass  

方法2:将循环封装为函数,return

# -*- coding:utf-8 -*-  """ 功能:python跳出循环 """  # 方法2:封装为函数,return  def test():      for i in range(5):          for j in range(5):              if i == j == 2:                  return              else:                  print (i, '----', j)  test()

方法3:用for…else…语句

# -*- coding:utf-8 -*-  """ 功能:python跳出循环 """  # 方法2:for...else...用法,用于跳出指定循环层  for i in range(5):      for j in range(5):          for k in range(5):              if i == j == k == 3:                  break              else:                      print (i, '----', j, '----', k)          else:        # else1              continue          break        # break1      else:            # else2          continue      break            # break2  

方法3解释:

  • (1)break能跳出某一重循环(该重循环的本次及剩余次数都不再执行),但并不能跳出该重循环的其他外重循环。
      例如,最内第3重循环break之后,程序返回第2重循环继续执行第2重的下一次,然后第3重循环将再次执行。

  • (2)continue是跳过某一重循环的某一次,但该重循环的剩余次数会继续执行。

  • (3)for…else:其中else块中的语句将在for循环完整执行过之后才会被执行,如果for循环被break,则else块将不会被执行。

  • (4)方法3中,当第3重循环满足i == j == k ==3时,第3重循环被break,则并列的else1将跳过,执行break1,导致第2重循环被终止,则else2被跳过,执行break2,导致第1重循环被终止。最终实现跳出整个循环。

      for…else加break举例

# -*- coding:utf-8 -*-  """ 功能:for...else语句 """  for i in range(5):      print i  else:      print u"循环完整执行一次。"  for j in range(6):      for k in range(6):          print j, k          if j == 3:              print u"内重循环即将被break"              break      else:          print u"内重循环完整执行一次。"  else:      print u"外重循环完整执行一次。"