六、流程控制

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

1、条件判断——if语句

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

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

 age = 17
if age < 18:
print('too young too simple') # 若果判断返回的True就执行这段代码

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

 age = 19
if age < 18:
print('too young too simple')
else:
print('do you marry me?') # 如果判断返回的是False就执行这段代码

由于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?')

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

应用示例:

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

#!/usr/bin/env python
# coding:utf-
'''
Created on: @author: 张晓宇 Email: @qq.com Version: 1.0 Description: 猜lucky number
、如果猜的数字比lucky number大,提示说小一点
、如果猜的数字比lucky number小,提示说大一点
、如果相等,提示Bingo Help:
'''
if __name__ == '__main__':
# 定义lucky number
lucky_num =
# 获取用户输入的猜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("Bingo")

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

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

#!/usr/bin/env python
# coding:utf-
choose = ''
while choose != 'q':
choose = input('请输入你要点的菜,输入q退出:')

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

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

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

#!/usr/bin/env python
# coding:utf-
'''
Created on: @author: 张晓宇 Email: @qq.com Version: 2.0 Description: 猜lucky number
、如果猜的数字比lucky number大,提示说小一点
、如果猜的数字比lucky number小,提示说大一点
、如果相等,提示Bingo
、没有猜对继续循环直到猜对
、限制三次,如果没有猜对提示三次没有猜对,游戏结束 Help:
''' if __name__ == '__main__':
# 定义lucky number
lucky_num =
# 定义guess_count,计数猜的次数
guess_count =
while guess_count < :
# 获取用户输入的猜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("Bingo!")
# 退出循环
break
# 次数加1
guess_count +=
else:
# 猜了三次循环正常退出
print("三次没有猜对,游戏结束")

3、for循环

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

for i in 'ABC':
print(i)

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

for i in range():
print(i)

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

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

#!/usr/bin/env python
# coding:utf-
'''
Created on: @author: 张晓宇 Email: @qq.com Version: 2.0 Description: 猜lucky number
、如果猜的数字比lucky number大,提示说小一点
、如果猜的数字比lucky number小,提示说大一点
、如果相等,提示Bingo
、没有猜对继续循环直到猜对
、限制三次,如果没有猜对提示三次没有猜对,游戏结束 Help:
''' if __name__ == '__main__':
# 定义lucky number
lucky_num =
for guess_count in range():
# 获取用户输入的猜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("Bingo!")
# 退出循环
break
else:
# 猜了三次循环正常退出
print("三次没有猜对,游戏结束")

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

我的Python成长之路---第一天---Python基础(5)---2015年12月26日(雾霾)的更多相关文章

  1. 我的Python成长之路---第一天---Python基础(1)---2015年12月26日(雾霾)

    2015年12月26日是个特别的日子,我的Python成之路迈出第一步.见到了心目中的Python大神(Alex),也认识到了新的志向相投的伙伴,非常开心. 尽管之前看过一些Python的视频.书,算 ...

  2. 我的Python成长之路---第一天---Python基础(作业2:三级菜单)---2015年12月26日(雾霾)

    作业二:三级菜单 三级菜单 可一次进入各个子菜单 思路: 这个题看似不难,难点在于三层循环的嵌套,我的思路就是通过flag的真假来控制每一层的循环的,简单来说就是就是通过给每一层循环一个单独的布尔变量 ...

  3. 我的Python成长之路---第一天---Python基础(6)---2015年12月26日(雾霾)

    七.列表——list Python的列表是一种内置的数据类型,是由Python的基本数据类型组成的有序的集合.有点类似C语言的数组,但与数组不同的是,Python在定义列表的时候不用指定列表的容积(长 ...

  4. 我的Python成长之路---第一天---Python基础(2)---2015年12月26日(雾霾)

    三.数据类型 Python基本类型(能够直接处理的数据类型有以下几种)主要有5种 1.整数(int) Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如 ...

  5. 我的Python成长之路---第一天---Python基础(4)---2015年12月26日(雾霾)

    五.数据运算与数据运算符 1.算术运算符 算术运算符 运算符 描述 示例 + 加法 >>> 14 - 5 9 - 减法 >>> 14 - 5 9  *  乘法 &g ...

  6. 我的Python成长之路---第一天---Python基础(3)---2015年12月26日(雾霾)

    四.变量和常量 变量是用来存储程序运行期间需要临时保存可以不断改变的数据的标识符.Python有自身的内存回收机制,所以在开发过程中不用考虑变量的销毁等 Python中的变量名命名有如下规则: 1.变 ...

  7. 我的Python成长之路---第一天---Python基础(作业1:登录验证)---2015年12月26日(雾霾)

    作业一:编写登录接口 输入用户名密码 认证成功系那是欢迎信息 输错三次后锁定 思路: 1.参考模型,这个作业我参考了linux的登录认证流程以及结合网上银行支付宝等锁定规则 1)认证流程参考的是Lin ...

  8. python成长之路第一篇(5)文件的基本操作

    一.三元运算 我们在上章学习的if,,else,,有一种简便的方法 他的表达式是这样的:变量 = 值1 if 条件 else 值2 解释过来就是如果aaa等于sss则输出值1否则输出值2 二.类的概念 ...

  9. PYthon成长之路第一篇(1)__字符串初识

    今天一起走进python的代码世界,一起领悟python的魅力 在很多学习python的书中都会以 print  “Hello,world!” 这样的而一个程序为开始,那么其中的 hello,worl ...

随机推荐

  1. c++ 输出虚函数表内容

    class Base{ public: virtual void f(){cout<<"Base::f"<<endl;} virtual void g(){ ...

  2. js中new构造函数的研究

    <javascript高级编程>里对new操作符的解释: new操作符会让构造函数产生如下变化: 1.       创建一个新对象: 2.       将构造函数的作用域赋给新对象(因此t ...

  3. 调试带有源代码的DLL文件

    工作环境:dll源代码是c,在Visual studio 2010中调试. 第一步,调试的准备. 用C#语言编写一个测试dll文件的程序,由于dll源程序是c的,且运行结果是黑屏的,所以C#代码也是运 ...

  4. 405 HTTP method GET is not supported by this URL

    孙鑫java web开发详解P285里面提交Get网站弹出提示405 HTTP method GET is not supported by this URL 原因父类doGet()方法未覆盖. 应写 ...

  5. hibernate 数据关联一对多 3.1

    一对多,多对一 (在多的一端存放一的外键) 但是在实体类中不需要创建这个外键 // 在一的一方创建Set集合 public class User { private Integer id; priva ...

  6. MAC Eclipse 快捷键

    MAC Eclipse 快捷键大全备忘: Command + O:显示大纲 Command + 1:快速修复 Command + D:删除当前行 Command + Option + ↓:复制当前行到 ...

  7. IOS中使用像素位图(CGImageRef)对图片进行处理

    IOS中对图片进行重绘处理的方法总结 一.CGImageRef是什么 CGImageRef是定义在QuartzCore框架中的一个结构体指针,用C语言编写.在CGImage.h文件中,我们可以看到下面 ...

  8. nginx源代码学习资源(不断更新)

    nginx源代码学习是一个痛苦又快乐的过程,以下列出了一些nginx的学习资源. 首先要做的当然是下载一份nginx源代码,能够从nginx官方站点下载一份最新的. 看了nginx源代码,发现这是一份 ...

  9. ms sql 获取字符串首字母

    很久没有编写新文章,现在发布一篇自定义函数,针对于ms sql数据库中需要获取字符串首字母,对于需要的朋友希望对你有用,如果你有更好的方法也可以给我留言.函数如下: --获取字符串首字母 CREATE ...

  10. 安装uwsgi

    apt-get install uwsgi uwsgi-plugin-python