python基础(3)---流程控制



  流程控制

  与C语言不通的是 PYTHON的流程控制代码块不是用{}花括号表示的,而是强制缩进来控制的;而且缩进必须一致,官方推荐是使用4个空格,不建议使用tab(制表符)做缩进,一是不同的系统tab所占宽度不一致,会比较乱,二是由于 PYTHON要求同级缩进必须保持一致,所以有些时候看上去是对齐l,但是有的是空格有的是tab键,使得不容易排错,另外条件判断的语句不需要使用()括起来,但是条件语句后面使用:

  1.条件判断--if语句

  条件判断就是执行某个代码段之前先进行判断,如果符合再执行某个代码块

  比如,输入年龄,如果年龄小于18岁,就告诉他too yong toosimple!



  

   age = 17

if age <18;

    print('too yong too simple')    #如果判断返回的True就执行这段代码

  

  View Code

 

  也可以在if后面添加一个else语句,告诉 PYTHON解释器,如果不符合执行条件(返回False)的代码段,例如,如果年龄不小于18岁,就告诉他do you marry me?



  

   age = 19

if age < 18:

    print('too young too simple')

else:

    print('do you marry me?')    #如果判断返回的False就执行这段代码

  

  View Code

 

  由于 PYTHON没有case语句,所以条件分支可以通过else if这样嵌套,为了技术那好嵌套可以使用简写elif,例如再加一个条件如果大于30岁,告诉他too old!



  

   age = 33

if age < 18:

    print('too young too simple')

elif age > 32:

    print('too old!')

else:

    print('do you marry me?')

  

  View Code

 

  注意:保持缩进一直,不要忘了冒号:

 

  应用示例:

  现在有这么一个需求,设计一个猜幸运数字的小游戏,通过控制台输入的方式让用户猜你的幸运数字lucky number,如果用户输入的比你的幸运数字大就提示再小一点,反之如果输入的比你幸运数字小泽提示再大一点,如猜中则提示Bin [url=http://www.cppentry.com/list.php?fid=77]PYTHON[/url]。



  

   '''

@author:xiaocao


Description:猜lucky number

            1、如果猜的数字比lucky number大,提示小一点

            2、如果猜的数字比lucky number小,提示说大一点

            3、如果相等,提示Bin [url=http://www.cppentry.com/list.php?fid=77]PYTHON[/url]

'''

if __name__ == '__main__':

    #定义lucky number

    lucky_num = 5

    #获取用户输入的猜lucky number

    lucky_num_input = int(input("请输入lucky number(1-10):"))

    #判断用户输入的猜lucky number

    if lucky_num_input > lucky_num:

        #输入的比lucky number大

        print("再小一点")

    elif lucky_num_input < lucky_num:

        #输入的比lucky number小

        print("再大一点")

    else:

        #正确

        print("Bin [url=http://www.cppentry.com/list.php?fid=77]PYTHON[/url]")

  

  View Code

 

 

 

  2.while循环:只要符合条件(条件语句返回的是True)则循环执行某个代码段

  比如我们的程序有着让用户输入东西并进行处理(例如菜单程序),如果用户输入的q则退出程序

 

  choose = ''

while choose != 'q':

    choose = input('请输入你要点的菜,输入q退出')

 

  循环中的常见关键字break、continue、else:

  在循环中关键字break表示退出循环,continue表示退出当前循环继续下一轮的循环,continue后面的语句将不执行,else和if中的else表示条件不满足时(也就是正常退出循环不是用break强制退出)执行的代码段

  应用示例,还是刚才那个猜幸运数字的游戏,之前只是输入一次程序就退出了,如果继续猜需要重新运行程序,这很不友好,我们现在让用户运行一次可以猜3次,如果3次猜不对再退出程序



  

   '''

@author:xiaocao


Description:猜lucky number

            1、如果猜的数字比lucky number大,提示小一点

            2、如果猜的数字比lucky number小,提示说大一点

            3、如果相等,提示Bin [url=http://www.cppentry.com/list.php?fid=77]PYTHON[/url]

            4、没有猜对继续循环直到猜对

            5、限制三次,如果没有猜对提示三次没有猜对,游戏结束

'''



if __name__ == '__main__':

    #定义luncky number

    lucky_num = 5

    #定义guess_count,计算猜的次数

    guess_count = 0

    while guess_count < 3:

        #获取用户输入的猜lucky number

        lucky_num_input= int(input("请输入lucky number:"))

        #判断用户输入的猜lucky number

        if lucky_num_input > lucky_num:

            #输入的比lucky number大

            print("再小一点")

        elif lucky_num_input < lucky_num:

            #输入的比lucky number小

            print("再大一点")

        else:

            #输入的和lucky number相等

            print("Bin [url=http://www.cppentry.com/list.php?fid=77]PYTHON[/url]")

            #退出循环

            break

        #次数加1

        guess_count += 1

    else:

        #猜了三次循环正常退出

        print("三次没有猜对,游戏结束!")

  

  View Code

 

  3.for循环

   PYTHON中的for循环常常使用in序列化对象(如列表、元组等)进行遍历,这里我们还没讲到列表元组等,我们可以用字符串(字符串也是序列化对象,可以遍历每个元素,也就是组成字符串的每一个字符),假设我们有个一个字符串‘ABC’我们要把字符串中的每一个字符分别输出,可以这样做:

 

  for i in 'ABC':

    print(i)

 

  如果我们需要像C语言for(i=1;i<3;i++),可以借助内置方法range(n),就是生成一个(0,1,2...n-1)的序列,例如我们要指定循环多少遍(打印0-9的数字)可以这么做:

 

  for i in range(10):

    print(i)

 

   PYTHON的for循环也可以使用break、continue和else,使用方法和while循环一样

  应用示例,我们把猜幸运数字的游戏改成for循环实现



  

   '''

@author:xiaocao

for循环实现

Description:猜lucky number

            1、如果猜的数字比lucky number大,提示小一点

            2、如果猜的数字比lucky number小,提示说大一点

            3、如果相等,提示Bin [url=http://www.cppentry.com/list.php?fid=77]PYTHON[/url]

            4、没有猜对继续循环直到猜对

            5、限制三次,如果没有猜对提示三次没有猜对,游戏结束

'''

if __name__ == '__main__':

    #定义lucky number

    lucky_num = 5

    for guess_count in range(3):

        #获取用户输入的lucky number

        lucky_num_input = int(input("请输入lucky number:"))

        #判断用户输入的猜lucky number

        if lucky_num_input > lucky_num:

            #输入的比lucky number大

            print("再小一点")

        elif lucky_num_input < lucky_num:

            #输入的比lucky number小

            print("再大一点")

        else:

            #输入的和lucky number相等

            print("Binge")

            #退出循环

            break

    else:

        #猜了三次循环正常退出

        print("三次没有猜对,游戏结束!")

  

  View Code

 

 

  总结:while和for循环虽然都可以实现循环,但是他们各自有各自的特点,根据实际需要选择,例如不限定循环的次数只要符合条件就退出循环使用while循环就比较方便,如果限定循环次数或者要遍历序列对象使用for循环就比较方便

 

猜你喜欢

转载自yule-maiyewang.iteye.com/blog/2406361