1、概述

   流程控制的意思是,当你在做出一个确定时,会依据当时的条件来做判断,如果A条件存在,则我们会做出B决定;否则,我们会做出C决定。举个周六要出去玩的例子,流程可能如下:

  1. 在下雨吗?
  2. 如果没有下雨则直接出去。
  3. 如果下雨了呢?则跳转到第4
  4. 如果家里有伞,则可以无惧风雨直接出去。
  5. 如果家里没有伞呢?则需跳转到第6步。
  6. 现在需要等待一会儿,等雨停了。
  7. 雨停了吗?
  8. 如果没有停,则跳转到第7步,继续等待。
  9. 如果停了,则可以出去玩了。

  用流程图可能更加清晰一些,如下图:

  这篇文章我们就用python代码来实现上图中的这个流程

 

2、boolean数据类型

   图中的yesno是我们人的语言,那在python中,怎么来表示yesno呢?Python中专门有一个数据类型来表示一个条件的真假,这种数据类型叫做Boolean,他权有两个值TrueFalseyesTrue来表示,noFalse来表示。

3、关系操作符

   什么叫关系操作符?顾名思义,就是比较两个值,关系操作符就像小学学过的5 > 3一样,其中的>python中就叫做关系操作符,关系操作符主要用于两个数据的比较,比较的结果为boolean值,图中的黄色棱形就会存在比较,python中常用的比较操作符如下:

比较操作符

         说明

           事例

==

两个等号,用于比较两个值是否相等

5 == 5,结果为True

3 == 4,结果为False

!=

不相等

5 != 5,结果为False

3 != 4,结果为True

<

小于

5 < 5,结果为False

3 < 4,结果为True

>

大于

5 > 5,结果为False

3 < 4,结果为True

<=

小于或者等于,只要有一个条件成立则为True,否则为False

5 <= 5,结果为True

4 <= 3,结果为False

>=

大于或者等于,只要有一个条件成立则为True,否则为False

5 >= 5,结果为True

3 >= 4,结果为False

可以交互式shell中实践一下,感受一下效果

注意:

  •  33是不相等的,因为3int类型,3string类型
  • 2===是不一样的,==是比较操作符,而=是赋值操作符

 

4boolean操作符

   Boolean操作符主要作用于多个比较条件,比如5 ==5 3 == 4的结果,用代码来表示,应该是5 == 5 and 3 ==4(把和替换成了and),5 == 5结果为True,3 == 4结果为False,那么实际上是计算True and False,结果为False,计算过程如下:

总共有3boolean操作符,分别是and,or,not

        and所有条件都为True,结果才为True;否则为False,例如: 5 ==5 and 3 == 4结果为False

        or任意条件为True,则结果为True;所有条件为False,结果才为False,例如:5 ==5 or 3 ==4结果为True

        not:  取反错误,若条件为True,则结果为False;若条件为False,则结果为True,例如:not (5 ==5)结果为False,not (3 == 4)结果这True

总结如下:

表达式

结果

说明

True and True

True

都是True,所以结果肯定是True

True and False

False

and操作中只要有False,那么结果为False

False and True

False

and操作中只要有False,那么结果为False

False and False

False

and操作中只要有False,那么结果为False

True or True

True

or操作中只要有True,那么结果就为True

True or False

True

or操作中只要有True,那么结果就为True

False or True

True

or操作中只要有True,那么结果就为True

False or False

False

Or操作所有条件为False,结果才为False

not True

False

True取反,True的反是False,所以结果为False

not False

True

False取反,False的反是True,所以结果为True

 

5、代码缩进块

  以前的程序都是上自上而下的执行,每行代码都是顶着左侧写,也就是他们都在每一行开通时都有0个空格。代码缩进就是指相同级别的代码从左算起有相同的空格数,在A条件发生的前提下做事情都有要相同的缩进(空格),在A条件不成立的条件下做的事情也要有相同的缩进(空格),以今天下雨做的事来举例:

假如今天下雨:

        先在家睡个午觉

        然后起床吃饭

        然后看书学习

否则假如是大雾:

        先去青城山看雾

        然后回家

否则:

        先去图书馆

        再和女朋友一起去公园

        然后回家

   今天下雨所做的三件事情(代码块)都处于同一级别,所以都有相同的4个缩进;今天是大雾所做的2件事情(代码块)也处于同一级别,所以他们有相同的4个缩进;今天不下雨所做的3件事情(代码块)也处于同一级别,所以他们也有相同的缩进。Python中的缩进一般是4个空格

 

4、if条件语句

if语句的格式为:

if 条件:
    做一些事情

elif 条件:

    做一些事情

elif 条件:

    做一些事情

else:

    做一些事情

   条件只能是true或者false,ifelifelse只要有一个条件为true,这个条件下的代码块执行后,其他条件下的代码块就不会被执行了。以前面下雨的为例子,如果今天下雨,那么会执行第一个语句下的代码块,即先在家睡个午觉、然后起床吃饭、然后看书学习,否则假如是大雾和否则下的代码块就不会被执行了。

 

5、while循环

   while循环的格式为:

while 条件1:

    if 条件2:

        continue

        其他语句1

    if 条件3:

       break

       其他语句2

其他语句3

 

  条件1只能为true或者false,只要条件1一直为true,那么就会执行while后面的代码块,if语句是可选的,只是为了引入continuebreak语句。

      continue: 略过continue后的所有语句(不会执行其他语句1if条件3后的所有语句),重新执行while语句,也就是从while处开始再次执行。

      break:跳出while循环,执行while循环后的语句,上例中是执行其他语句3

  举一个询问名字和密码的例子,代码如下:

while True:

      print('你是谁?')

      name = input()

      if name != 'xiaoming':

          continue

      print('您好,xiaoming')

      password = input()

      if password == '12345':

          break

print('授权成功')

 

把上面的代码输入到mu编辑器中去感受一下,为便于理解,可以对照下面的流程图进行理解:

 

6、for循环

  for循环的格式为:   

for i in range(start,stop,step):
    print(i)

  其中:range(start,stop,step)是一个函数调用,产生一系列的整数,这个整数的起点是start,终点是stop(不包括stop),间隔是step,i用来循环range()产生的一系列整数,然后print(i)进行输出,例如:for i in range(1,7,2):print(i),会输出135

 

7、module

   一个module是一系列函数的集合,这些module都是python自带的,已经写好的,常见的模块有math(做数据计算的)、os(操作系统相关的)、sys(程序运行环境相关的)、randoom(随机数相关的)

  那如何使用这些模块里的函数呢?有两种方式(radnom为例)

  • import randomrandom.randint(0,10) randint是模块random的一个函数,用于输出这个范围内的整数
  • from random import * 或者from random import randint这样子就不用加random前缀了,但是第一种的可读性更好,所以建议import module name

 

8、综合实例

 根据用户的输入判断是不是应该退出

#函数功能:判断用户输入的是不是exit,如果是,则退出程序​
import sys
while True:
    print('Type exit to exit.')
    response = input()
    if response == 'exit': # 用户输入了exit
        sys.exit() #exit()是sys模块的一个函数,sys.exit()的意思是退出程序
    print('You typed ' + response + '.')

​

  猜数字游戏

# 猜程序随机生成的数字

import random

secretNumber = random.randint(1, 20) #随机生成一个1到20之间的整数

print('I am thinking of a number between 1 and 20.')


# 猜6次

for guessesTaken in range(1, 7):

    print('Take a guess.')

    guess = int(input()) #输入一个你猜的数字


    if guess < secretNumber: # 输入的数字小于随机生成的数字

        print('Your guess is too low.')

    elif guess > secretNumber:

        print('Your guess is too high.') #输入的数字大于随机生成的数字

    else: #猜中了

        break    # 猜中了则退出循环

if guess == secretNumber: #猜中了

    print('Good job! You guessed my number in ' + str(guessesTaken) + 'guesses!')

else: # 猜了6次都没有猜中

    print('Nope. The number I was thinking of was ' + str(secretNumber))

把这些实例放在mu编辑中实际运行调试一下,更能融会贯通。

 

 

原创文章,转载请注明出处:http://www.nwumba.cn/article/7/