流程控制

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

  1.条件判断--if语句

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

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

  1. age =
  2. if age <;
  3. print('too yong too simple') #如果判断返回的True就执行这段代码

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

  1. age =
  2. if age < :
  3. print('too young too simple')
  4. else:
  5. print('do you marry me?') #如果判断返回的False就执行这段代码

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

  1. age =
  2. if age < :
  3. print('too young too simple')
  4. elif age > :
  5. print('too old!')
  6. else:
  7. print('do you marry me?')

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

  应用示例:

  现在有这么一个需求,设计一个猜幸运数字的小游戏,通过控制台输入的方式让用户猜你的幸运数字lucky number,如果用户输入的比你的幸运数字大就提示再小一点,反之如果输入的比你幸运数字小泽提示再大一点,如猜中则提示Bingo。

  1. '''
  2. @author:xiaocao
  3.  
  4. Description:猜lucky number
  5. 、如果猜的数字比lucky number大,提示小一点
  6. 、如果猜的数字比lucky number小,提示说大一点
  7. 、如果相等,提示Bingo
  8. '''
  9. if __name__ == '__main__':
  10. #定义lucky number
  11. lucky_num =
  12. #获取用户输入的猜lucky number
  13. lucky_num_input = int(input("请输入lucky number(1-10):"))
  14. #判断用户输入的猜lucky number
  15. if lucky_num_input > lucky_num:
  16. #输入的比lucky number大
  17. print("再小一点")
  18. elif lucky_num_input < lucky_num:
  19. #输入的比lucky number小
  20. print("再大一点")
  21. else:
  22. #正确
  23. print("Bingo")

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

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

  1. choose = ''
  2. while choose != 'q':
  3. choose = input('请输入你要点的菜,输入q退出')

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

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

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

  1. '''
  2. @author:xiaocao
  3.  
  4. Description:猜lucky number
  5. 、如果猜的数字比lucky number大,提示小一点
  6. 、如果猜的数字比lucky number小,提示说大一点
  7. 、如果相等,提示Bingo
  8. 、没有猜对继续循环直到猜对
  9. 、限制三次,如果没有猜对提示三次没有猜对,游戏结束
  10. '''
  11.  
  12. if __name__ == '__main__':
  13. #定义luncky number
  14. lucky_num =
  15. #定义guess_count,计算猜的次数
  16. guess_count =
  17. while guess_count < :
  18. #获取用户输入的猜lucky number
  19. lucky_num_input= int(input("请输入lucky number:"))
  20. #判断用户输入的猜lucky number
  21. if lucky_num_input > lucky_num:
  22. #输入的比lucky number大
  23. print("再小一点")
  24. elif lucky_num_input < lucky_num:
  25. #输入的比lucky number小
  26. print("再大一点")
  27. else:
  28. #输入的和lucky number相等
  29. print("Bingo")
  30. #退出循环
  31. break
  32. #次数加1
  33. guess_count +=
  34. else:
  35. #猜了三次循环正常退出
  36. print("三次没有猜对,游戏结束!")

  3.for循环

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

  1. for i in 'ABC':
  2. print(i)

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

  1. for i in range():
  2. print(i)

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

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

  1. '''
  2. @author:xiaocao
  3. for循环实现
  4. Description:猜lucky number
  5. 、如果猜的数字比lucky number大,提示小一点
  6. 、如果猜的数字比lucky number小,提示说大一点
  7. 、如果相等,提示Bingo
  8. 、没有猜对继续循环直到猜对
  9. 、限制三次,如果没有猜对提示三次没有猜对,游戏结束
  10. '''
  11. if __name__ == '__main__':
  12. #定义lucky number
  13. lucky_num =
  14. for guess_count in range():
  15. #获取用户输入的lucky number
  16. lucky_num_input = int(input("请输入lucky number:"))
  17. #判断用户输入的猜lucky number
  18. if lucky_num_input > lucky_num:
  19. #输入的比lucky number大
  20. print("再小一点")
  21. elif lucky_num_input < lucky_num:
  22. #输入的比lucky number小
  23. print("再大一点")
  24. else:
  25. #输入的和lucky number相等
  26. print("Binge")
  27. #退出循环
  28. break
  29. else:
  30. #猜了三次循环正常退出
  31. print("三次没有猜对,游戏结束!")

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

python基础(3)---流程控制的更多相关文章

  1. python基础之流程控制、数字和字符串处理

    流程控制 条件判断 if单分支:当一个“条件”成立时执行相应的操作. 语法结构: if 条件: command 流程图: 示例:如果3大于2,那么输出字符串"very good" ...

  2. python基础之流程控制(2)

    今天将是基础篇的最后一篇,咱们来补上最后一个内容,流程控制for循环 For 循环 一.为什么有for循环? for循环能做的事情,while循环全都可以实现,但是在某些情境下,for循环相对于whi ...

  3. python基础之流程控制

    流程控制之----if 流程控制,是指程序在运行时,个别的指令(或者是陈述.子程序)运行或者求值的顺序.人生道路上的岔口有很多,在每个路口都是一个选择,在每个路口加上一个标签,选择哪个就是满足哪个条件 ...

  4. python基础:流程控制案例:

    1,简述编译型与解释型的语言,且分别列出你知道的哪些语言属于编译型,哪些属于解释型. 答:简单理解编译型语言类似谷歌翻译,整篇读入整篇翻译,代表语言有C语言,解释型语言类似同   声传译,读入一行翻译 ...

  5. python基础之流程控制(1)

    一.分支结构:if 判断 1.什么要有if 判断语句? 让计算机可以像人一样根据条件进行判断,并根据判断结果执行相应的流程. 2.基本结构 单分支结构 # 单分支 if 条件1: 代码1 代码2 代码 ...

  6. python基础之流程控制(if判断和while、for循环)

    程序执行有三种方式:顺序执行.选择执行.循环执行 一.if条件判断 1.语句 (1)简单的 if 语句 (2)if-else 语句 (3)if-elif-else 结构 (4)使用多个 elif 代码 ...

  7. Python基础之流程控制for循环

    目录 1. 语法 2. for+break 3. for+continue 4. for循环嵌套 1. 语法 while循环可以对任何内容循环,但循环次数不可控 for循环基于容器类型的长度,循环次数 ...

  8. Python 基础知识----流程控制

    判断语句 循环语句 嵌套

  9. Python基础之流程控制if判断

    目录 1. 语法 1.1 if语句 1.2 if...else 1.3 if...elif...else 2. if的嵌套 3. if...else语句的练习 1. 语法 1.1 if语句 最简单的i ...

  10. Python基础之流程控制while循环

    目录 1. 语法 2. while+break 3. while+continue 4. while+else 1. 语法 最简单的while循环如下: ''' while <条件>: & ...

随机推荐

  1. Unity3D开发七惑

    使用Unity3D开发也有大半年了,心中存惑如下,愿与各位开发者一起探讨: (1)  远离普适编程之惑 随着游戏引擎的不断发展,游戏程序员的开发层级也越来越高,以unity3d尤为突出.如果是进行We ...

  2. bzoj 1100 [POI2007]对称轴osi manacher

    [POI2007]对称轴osi Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 771  Solved: 307[Submit][Status][Dis ...

  3. Android如何在初始化的时候获取加载的布局的宽高

    在自定义ListView中,需要将下拉刷新的View在初始化的时候设置padding隐藏起来,这时就要在初始化的时候获得要加载的布局View的高度. private View headView; he ...

  4. JS日期对象扩展-日期格式化

    日期对象扩展(日期格式化)yyyy-MM-dd hh:mm:ss.S Date.prototype.format = function(fmt) { var o = { "M+" ...

  5. [USACO09DEC] Cow Toll Paths

    https://www.luogu.org/problem/show?pid=2966 题目描述 Like everyone else, FJ is always thinking up ways t ...

  6. [uva11997]k个最小和

    一个k*k的矩阵,每行选取一个数相加则得到一个和,求最小的前k个和. k<=750 已知前m行最小的前k个和d[1]…d[k],则前m+1行最小的前k个和都必定是d[i](i<=k)+a[ ...

  7. MySQL查询 45道练习题

    SQL查询45道练习题 1.查询Student表中的所有记录的Sname.Ssex和Class列.select sname,ssex,class from student2.查询教师所有的单位即不重复 ...

  8. 集合类HashMap,HashTable,ConcurrentHashMap区别?

    1.HashMap 简单来说,HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决哈希冲突而存在的,如果定位到的数组位置不含链表(当前entry的next指向null), ...

  9. poj 1797

    2013-09-08 09:48 最大生成树,输出生成树中最短的边儿即可 或者对边儿排序,二份答案+BFS判断是否1连通N 时间复杂度都是O(NlogN)的 附最大生成树pascal代码 //By B ...

  10. cookie、session、localstorage

    最早的Cookies问题主要就是太小,大概也就4KB的样子,而且IE6只支持每个域名20个cookies,太少了.优势就是大家都支持,而且支持得还蛮好.cookie的内容主要包括:名字,值,过期时间, ...