流程控制

Date: 2019-05-27

Author: Sun

1.条件语句

Python中提供的条件语句:if else语句,switch语句

if else语句

1466232-20190527230425687-1587130679.png

1.1 单一分支

if 条件表达式:
    【代码块】
 【后续代码】
执行流程:如果条件表达式为真,则执行【代码块】。否则不执行,直接执行if语句后面的【后续代码】

eg:

# -*- coding: utf-8 -*-
__author__ = 'sun'
__date__ = '2019/5/27 10:43'

number = int(input("Enter a number: "))
if number < 100:
    print("The number is less than 100")
print("process finish!")

1.2 双向分支

if 条件表达式:
    【语句块A】
else:
    【语句块B】
【后续代码】
执行流程:如果条件表达式为真,执行【语句块A】然后执行【后续代码】,否则执行【语句块B】,然后再执行【后续代码】,二选一,不可能既执行A有执行B

eg:

# -*- coding: utf-8 -*-
__author__ = 'sun'
__date__ = '2019/5/27 10:43'

number = int(input("Enter a number: "))
if number < 100:
    print("The number is less than 100")
else:
    print("The number is more than 100")
print("process finish!")

1.3 多向条件分支

if 条件1:
    【代码段1】
elif 条件2:
    【代码段2】
elif .....
    【代码段n】
else:
   【else语句块】
【后续代码】
执行流程:多选一,如果满足条件1,执行【代码段1】,然后跳出if-elif语句,执行【后续代码】,否则判断是否满足条件2,如果满足执行【代码段2】,然后跳出if-elif语句,执行【后续代码】...。如果所有条件都不满足,执行【else语句块】,然后再执行【后续代码】。
注意:else是可选的,可以写也可以不写。

eg:

# -*- coding: utf-8 -*-
__author__ = 'sun'
__date__ = '2019/5/27 10:43'

number = int(input("Enter a number: "))
if number < 100:             #number < 100
    print("The number is less than 100")
elif number < 200:           #  100 <= number < 200
    print("the number is between 100 and 200")
elif number < 1000:          # 200 <= number < 1000
    print("the number is between 200 and 1000")
else:
    print("The number is more than 1000")
print("process finish!")

switch语句

​ 我们知道Python中没有类似C++或者Java中的switch...case语句,我们可以使用多个if...elif...else进行模拟,但是这样的写法让代码看起来很凌乱,个人不是很推荐在代码中大量使用if语句。

switch(n)
{
case 1:
  执行代码块 1
  break;
case 2:
  执行代码块 2
  break;
default:
  n 与 case 1 和 case 2 不同时执行的代码
}

案例:将英文日期翻译为中文日期

# -*- coding: utf-8 -*-
__author__ = 'sun'
__date__ = '2019/5/27 10:43'

dates = {
    'Sun': '星期天', 'Mon': '星期一', 'Tues': '星期二', 'Wed': '星期三',
    'Thurs': '星期四', 'Fri': '星期五', 'Sat': '星期六'}

day = dates.get('Fri', '未知')      #&& 此处采用get方法,很重要,没有取到值的话,就取“未知”
print(day)  # 输出结果为星期五

2.循环语句

1466232-20190527230505905-580758382.png

Python中提供的循环语句:while语句,for语句

广义:一个周期现象或者重复出现的情况,这种状态被称为循环

狭义:在满足条件的情况下,反复执行某一段代码,在编程语言中出现的这种现象被称为循环。被反复执行的这段代码被称为循环体

当反复执行某段代码时,需要在合适的时机将循环停止下来,否则会产生死循环

2.1.for-in循环

语法:

for 变量名 in 列表:

​ 语句

说明:主要用于遍历列表【遍历:依次访问列表中的每一个元素,获取元素值】

工作原理:按照顺序获取列表中的每个元素,赋值给变量,再执行语句,以此类推,直到列表中的元素全部获取为止

#只能获取元素,不能得到元素的下标
for value in list1:
    print(value,end=' ')
#index表示下标,num表示元素值
#enumerate将列表变成一个索引序列,同时包含下标和数据
for index,num in enumerate(list1):
    print(index,num)

案例:列举出个人喜欢的几本编程书籍

# -*- coding: utf-8 -*-
__author__ = 'sun'
__date__ = '2019/5/27 11:13'

books = ['python', 'java', 'go', 'h5']
#for index in range(len(books)):
for index, book  in enumerate(books):
    print(f'第{index+1}本, 书籍 :{books[index]}')

print("yes,i want study all!")

2.2 while语法

while 表达式:
    循环体

工作原理:遇到while语句时,首先计算表达式的值,如果表达式的值为假,则跳过整个while语句,继续执行下面的代码;如果表达式的值为真,则执行循环体

# -*- coding: utf-8 -*-
__author__ = 'sun'
__date__ = '2019/5/27 10:43'
ticket = 1000

while (ticket > 0):
    print(f'current sale the ticket: {ticket}')
    ticket = ticket - 1

2.2 while-else

while 表达式:
    循环体
else:
    【else语句块】

说明:当while语句执行完成之后,执行【else语句块】

2.3 死循环

在循环语句中,表达式永远为真的循环

while True:
  #循环体
 
while 1:
  #循环体

2.4 while语句的嵌套

while 条件1:     #外层循环
     【语句块A】
      while 条件2:   #内存循环
            【语句B】

工作流程:首先判断外层循环的条件1,如果为真,则执行循环体中的【语句块A】,执行内层循环,判断条件2是否成立,如果成立,执行内层循环的【语句块B】,执行完内层循环后,重新判断外层循环条件....

  • 特点:外层循环走一步,内层循环执行一遍
  • 外层循环和内层循环的循环变量必须不同

作业:

​ 打印九九乘法表

2.5. break和continue、exit()

​ continue 语句用来跳过当前循环的剩余语句,然后重新判断循环条件,开启下一轮循环。continue只能出现在while和for循环中

​ break用于结束当前循环。

exit()结束程序

还是上述卖票程序,我们如果需求改变的话

场景1: 我们除了第10张票不卖,其他的1000张票都卖?

# -*- coding: utf-8 -*-
__author__ = 'sun'
__date__ = '2019/5/27 10:43'
ticket = 1000
counter = 0

while (ticket > 0):
    counter += 1
    if counter == 10:
        ticket = ticket -1
        continue
    print(f'{counter},current sale the ticket: {ticket}')
    ticket = ticket - 1

思考问题:

​ 如果我们只卖出1000张票中的900张?自行设计?

案例:剪刀石头布游戏

思考问题:

上述石头剪刀布游戏,如果采用三局两胜制游戏规则,如果改写?

转载于:https://www.cnblogs.com/sunBinary/p/10934177.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值