Python快速精通3 - 流程控制

(一)顺序结构

从上到下一行行执行,没有任何判断和跳转

(二)分支结构

使用布尔表达式或布尔值作为分支条件来进行分支控制

分支形式1:

if 布尔判断:
语句块
例如: 公园门口对游客国籍身份进行判断,如果是岛国人,不让进

nationality = input('What is your nationality?')
if nationality == 'Japan':
    print('Please go away!')
What is your nationality?xxx

分支形式2:

nationality = input('What is your nationality?')
if nationality == 'Japan':
    print('Please go away')
else:
    print('Welcome...')
    
What is your nationality?xxx
Welcome...

分支形式3:

nationality = input('What is your nationality?')
if nationality == 'Japan':
    print('Japan and Dog,Please go away!')
elif nationality == 'Dog':
    print('Japan and Dog,Please go away!')
else:
    print('Welcome...')
What is your nationality?xxx
Welcome...

if表达式 (类似其它编程语言的三目运算符)

age = 20
man = '青少年' if age<18 else '成年人'
print(man)
成年人

断言(也是一种分支控制)

断言是这样的结构
assert bool表达式 <- -在这里为True才会往下继续执行,否则会抛出一个AssertionError错误

age = 18
assert 18<=age<=80
print('是成年人了,可以单独旅行.')
是成年人了,可以单独旅行.

(三)循环结构

  • 循环结构: 就在满足循环条件的情况下,反复执行一段代码块.
  • 循环条件: 布尔表达式.
  • 循环体: 反复执行的代码块.
  1. while循环
  2. for循环

3.1 while循环

语法形式
while 循环条件:
循环体

while循环在每次执行循环体之前,对"循环条件"进行判断,如果循环条件为真,则执行循环体部分;
循环体一般包括: 要执行的功能,另外一般包括对循环条件的控制,如果没有对循环条件的控制,这个循环就会无限执行下去,成为死循环

下面分别举例:
例,银行账户登录,如果连续输入错误三次,账户锁定

password = '123456'
errorTimes = 0
while errorTimes<3:
    passwd = input('请输入账户密码: ')
    if passwd==password:
        print('密码验证通过,业务逻辑完成!')
        errorTimes=0
        break
    else:
        errorTimes+=1
        msg = '密码错误次数到达3次,账户锁定.'if errorTimes==3 else '密码错误{0}次!'.format(errorTimes)
        print(msg)
        
请输入账户密码: 123456
密码验证通过,业务逻辑完成!

例,通过while循环遍历列表(元组一样)

language = ['C','C++','Java','Python','JavaScript','Scala','Swift','kotlin','R','Julia']
index=0
while index<len(language):
    print('Index: {0},\t Element: {1}'.format(index,language[index]))
    index+=1
Index: 0,    Element: C
Index: 1,    Element: C++
Index: 2,    Element: Java
Index: 3,    Element: Python
Index: 4,    Element: JavaScript
Index: 5,    Element: Scala
Index: 6,    Element: Swift
Index: 7,    Element: kotlin
Index: 8,    Element: R
Index: 9,    Element: Julia

例,猜数字(提示大小)

result = 99
times = 0
while times<7:
    number = int(input('请输入一个数字:'))
    if number>result:
        times+=1
        print('猜大了,还有{0}次机会'.format(7-times))
    elif number<result:
        times+=1
        print('猜小了,还有{0}次机会'.format(7-times))
    else:
        times+=1
        print('结果正确,用了{0}次机会猜到正确结果'.format(times))
        break

总之,循环会自动在每次执行循环体之前判断一下循环条件是否为True,来决定是否执行循环体.while循环适用于,不确定次数的循环,例如,我不清楚将要进行多少次尝试才会猜中数字,但是我只有一个边界条件,那就是小于7次,那就交给while自己去判断边界条件吧.

3.2 for循环

for循环用于遍历可迭代的对象
可迭代对象: 列表list,元组tuple,字典dict,集合set,字符串string,区间range都属于可迭代对象
先初步了解一下,可迭代对象中包含一个iter方法,该方法返回值一个对象实例,包含next()方法语法形式
for 变量(循环计数器) in 可迭代对象:
循环体

变量: 在每次循环中,自动被赋值,这个值就是可迭代对象中的每一个元素.
例,计算阶乘

num_input = input('Please input a number:')
nums = int(num_input)
result = 1
for i in range(1,nums+1):
    result*=i
print('Factorial is: {0}'.format(result))
Please input a number:5
Factorial is: 120
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift 提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行...
    穷人家的孩纸阅读 784评论 1 1
  • [The Swift Programming Language 中文版]本页包含内容: Swift提供了多种流程控...
    风林山火阅读 690评论 0 0
  • 思考:平常针对业务需求编写的代码通常以行为单位,那么代码的执行逻辑是什么样子的呢? 引入:正常情况下,代码就是按照...
    好像在哪见过你丶阅读 731评论 0 0
  • Swift提供了多种控制流声明。包括while循环来多次执行一个任务;if,guard和switch声明来根据确定...
    BoomLee阅读 2,078评论 0 3
  • 控制流 [TOC] Swift提供了多种流程控制结构,包括可以多次执行任务的while循环,基于特定条件选择执行不...
    伍哥___阅读 587评论 0 0

友情链接更多精彩内容