您的位置:首页 > 编程语言 > Python开发

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

2015-12-29 10:34 771 查看
六、流程控制

与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-8
'''
Created on:

@author: 张晓宇

Email: 61411916@qq.com

Version: 1.0

Description: 猜lucky number
1、如果猜的数字比lucky number大,提示说小一点
2、如果猜的数字比lucky number小,提示说大一点
3、如果相等,提示Bingo

Help:
'''
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("Bingo")


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

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

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


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

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

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

#!/usr/bin/env python
# coding:utf-8
'''
Created on:

@author: 张晓宇

Email: 61411916@qq.com

Version: 2.0

Description: 猜lucky number
1、如果猜的数字比lucky number大,提示说小一点
2、如果猜的数字比lucky number小,提示说大一点
3、如果相等,提示Bingo
4、没有猜对继续循环直到猜对
5、限制三次,如果没有猜对提示三次没有猜对,游戏结束

Help:
'''

if __name__ == '__main__':
# 定义lucky 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("Bingo!")
# 退出循环
break
# 次数加1
guess_count += 1
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(10):
print(i)


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

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

#!/usr/bin/env python
# coding:utf-8
'''
Created on:

@author: 张晓宇

Email: 61411916@qq.com

Version: 2.0

Description: 猜lucky number
1、如果猜的数字比lucky number大,提示说小一点
2、如果猜的数字比lucky number小,提示说大一点
3、如果相等,提示Bingo
4、没有猜对继续循环直到猜对
5、限制三次,如果没有猜对提示三次没有猜对,游戏结束

Help:
'''

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("Bingo!")
# 退出循环
break
else:
# 猜了三次循环正常退出
print("三次没有猜对,游戏结束")


总结:while和for循环虽然都可以实现循环,但是他们各自有各自的特点,根据实际需要选择,例如不限定循环的次数只要符合条件就退出循环使用while循环就比较方便,如果限定循环次数或者要遍历序列对象使用for就比较方便
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: