微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

零基础入门学Python四—— 了不起的分支和循环

零基础入门学Python系列内容的学习目录                                 →                            \rightarrow                 →零基础入门学Python系列内容汇总

  需要学习的基础知识有:分支和循环、“悬挂else”、条件表达式(三元操作符)、断言、while循环语句、for循环语、range()、 break语句、continue语句等。

1. 分支和循环
  • 分支结构:根据条件,选择性地执行某段代码,有if…elseswitch两种分支语句。
  • 循环结构:根据循环条件,重复性的执行某段代码,有whiledo…whilefor三种循环语句。

  我们玩的“打飞机”游戏就是使用几个循环和if条件写出来的。大概框架如下:

加载背景音乐
播放背景音乐
我方飞机诞生
interval=0
while True:
  if 用户是否单击了关闭按钮:
    退出程序
   interval += 1
   if interval ==50:
    小飞机诞生
    小飞机移动一个位置
    屏幕刷新
    interval=0
   if 用户鼠标产生移动:
     我方飞机中心位置=用户鼠标位置
     屏幕刷新
  if 我方飞机与小飞机发生肢体接触:
    我方挂,播放撞机音乐
    修改我方飞机图案
     打印"GAME OVER"
    停止背景音乐

  编程小练习: 按照100分制,90分以上成绩为A,80 ~ 90为B,60 ~ 80为C,60以下为D。程序要求用户输入分数,自动转换为A、B、C、D的形式打印。

score = int(input('请输入一个分数:'))if 100 >= score >= 90:
    print('A')elif 90 >= score >= 80:
    print('B')elif 80 >= score >= 60:
    print('C')elif 60 >= score >= 0:
    print('D')else:
    print('输入错误!')

2. Pyhton可以有效避免“悬挂else”

  对于什么是“悬挂else”的问题,举个C语言中的例子进行说明:

if (hi > 2)
    if (hi > 7)
        print("好棒!好棒!");else
    print("切~");

  在上述例子中,虽然else是想和外层的if进行匹配,但事实上按照C语言的就近匹配原则,这个else是属于内层 if 的。由于初学者的一不小心 ,就容易导致BUG的出现,这就是著名的“悬挂else”。

  而Python的缩进使用强制规定使得代码必须正确对齐,让程序员来决定else到底属于哪一个if。限制我们的选择从而减少了不确定性,所以在Python中制造出“悬挂else”的问题是不可能的,而且强制使用正确的缩进使得Python的代码变得整洁易读。

3. 条件表达式(三元操作符)

  “多少元”操作符的意思是这个操作符有多少个操作数,例如赋值操作符=是二元操作符,所以它有左边和右边两个操作数;-是一元操作符,表示负号,所以只有一个操作数。

  三元操作符语法:a=x   if  条件  else  y

  有了三元操作符的条件表达式,我们就可以用一条语句来完成条件判断和赋值操作。

  if x < y:
    small = x
  else:
    small = y
  上述例子中的语句使用三元操作符语法可以改进为 small=x if x<y else y。

4. 断言

  断言: assert这个关键字称为“断言”,当这个关键字后边的条件为假的时候,程序自动奔溃并抛出AssertionError的异常。

  断言在测试程序时使用比较好,可以用它在程序中置入放检点,当需要确保程序中某个条件为真才能让程序正常工作时,assert关键字就非常有用。

  example1:>>>assert  3 < 4
       >>>assert  3 > 4
       Traceback (most recent call last):
        File “

5. while循环语句

  Python的while循环跟if条件分支类似,在条件为真的情况下执行一段代码,不同的是只要条件为真,while循环会一直重复执行那段代码,把这段代码称为循环体。

  while循环语句: while  条件:
             循环体

6. for循环语句

  Python的for循环也是计数器循环,它会自动调用迭代器的next()方法(在对象中的函数称为方法),会自动捕获stopiteration异常并结束循环。

  for循环语句: for  目标  in  表达式:
          循环体

  example1:>>>word = “Python”
       >>>for each in word:
            print(each,end=’ ')
       Python

7. range()

  range()是for循环的一个小伙伴。

  Python中的range()内建函数语法:range( [ start, ] stop [ ,step=1 ] )。

  range这个BIF的作用是生成一个从start参数的值开始,到stop参数的值结束的数字序列,常与for循环一起用于各种计数循环之间。它有三个参数,其中用中括号括起来的两个表示这两个参数是可选的。step=1表示第三个参数的认值是1。

  只传递一个参数的range(),它会将第一个参数认设置为0,生成0到某个数值的所有数字(包含0但不包含最后的那个数字)。
  example1:>>>for i in range(5):
            print(i)
       0
       1
       2
       3
       4

  传递两个参数的range():
  example2:>>>for i in range(2, 5):
            print(i)
       2
       3
       4

  传递三个参数的range():
  example3:>>>for i in range(1, 10, 2):
            print(i)
       1
       3
       5
       7
       9

8. break语句

  break语句的作用是终止当前循环,跳出循环体。下面举个例子:

bingo = '5'answer = input('请输入一个数字:')while True:
    if answer == bingo:
        break
    answer = input('抱歉,错了,请重新输入:')print('太棒了!')

  程序运行后,只有当输入“5”的时候,才会执行break语句,也就是跳出while循环体。
  >>>
  请输入一个数字:4
  抱歉,错了,请重新输入:7
  抱歉,错了,请重新输入:5
  太棒了!

9. continue语句

  continue语句的作用是终止本轮循环并开始下一轮循环,要注意的是在开始下一轮循环之前,会先测试循环条件。下面举个例子:

for i in range(10):
    if i%2 != 0:
        print(i)
        continue
    i += 2
    print(i)

  程序运行后,可得到如下结果:
  >>>
  2
  1
  4
  3
  6

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐