Python流程控制语句——流程控制、分支结构、循环结构

流程控制语句

一、流程控制

​ 根据代码执行过程的不同,可以将代码分为三种结构:

  1. 顺序结构(默认):代码从上往下按顺序执行,每条语句只执行一次。

    print('魈')
    print('万叶')
    print('阿散')
    
  2. 分支结构:根据条件选择分支代码进行执行 - if语句

    age = 17
    if age > 18:
        print('成年')
    else:
        print('未成年')
    
  3. 循环结构:代码重复执行 - for``````while循环

二、分支结构

​ 分支结构存在的价值:解决程序中’如果···就···'的业务逻辑

  1. if单分支结构 - 条件成立就执行某个操作,条件不成立就不执行

    解决:如果···就···

    语法:

    if 条件语句:
        代码段
    

    说明:

    a. if- 固定写法

    b. 条件语句- 任何有结果的表达式(一般是 判断语句

    c. :- 固定语法

    d. 代码段 - 结构上,和 if保持一个缩进( tab键);逻辑上,代码段里面的代码就是满足条件才会执行的代码

    # 案例: 如果num是偶数就在控制台打印'偶数'
    num = 10
    if num % 2 == 0:
        print('偶数')
    # 练习:根据age的值打印'成年'
    age = 17
    if age >= 18:
        print('成年')
    # 练习:如果year对应的年份是闰年就打印'闰年'
    year = 2004
    if (year % 400 ==0) or (year % 4 ==0 and year % 100 !=0):
        print('闰年')
    
  2. if双分支结构 - 条件成立执行后面的代码,条件不成立执行后续操作

    解决:如果···就···,否则就···

    语法:

    '''
    if 条件语句:
        代码段1(条件成立则执行)
    else:
        代码段2(条件不成立则执行)
    '''
    
    # 练习:根据num的值打印'偶数'或者'奇数'
    num =34
    if num % 2 ==0:
        print('偶数')
    else:
        print('奇数')
    # 练习:根据year的值打印'闰年'或者'平年'
    year = 2004
    if (year % 400 ==0) or (year % 4 ==0 and year % 100 !=0):
        print('闰年')
    else:
        print('平年')  
    
  3. if多分支结构

    解决:如果···就···,如果···就···,如果···就···,…,否则就···

    '''
    方法1   -   每个条件都会判断一次(用于多个条件成立,另外的条件也可能成立的情况)
    if 条件1:
        代码段1
    if 条件2:
        代码段2
    if 条件3:
        代码段3
    ...
    方法2:   -   后面的条件是在前面的条件都不成立时判断(用于在多个条件中其中一个条件成立,另外的条件绝对不会成立的情况)
    if 条件1:
        代码段1
    elif 条件2:
        代码段2
    elif 条件3:
        代码段3
    ...
    else:
        代码段N-1
    '''
    
    # 案例:根据百分制的分数值,打印对应的等级:90分以上–A、80多分–B、60多分、70多分–C、60分以下–D
    score = eval(input('请输入成绩:'))
    if score >= 90:
        print('A')
    elif score >= 80:
        print('B')
    elif score >= 60:
        print('C')
    else:
        print('D')
    # 练习: 根据num的值打印: '奇数' '偶数' '4的倍数'
    num = eval(input('请输入一个数字:'))
    # num = 34
    if num % 2 == 0:
        print('偶数')
        if num % 4 == 0:
            print('4的倍数')
    else:
        print('奇数')
    
    

三、循环结构:

1. for循环

  1. for循环 - 让代码重复执行

    语法:

    for 变量 in 序列 :
        循环体
    

    说明:

    a. forin、冒号 - 固定写法

    b. 变量 - 可以没有定义的变量名,也可以是已经定义过的变量的变量名

    c. 序列 - 容器型数据类型的数据,比如:字符串、列表、字典、集合、元组、迭代器、生成器、range

    d. 循环体 - 结构上,和 for保持一个缩进的一条或者多条语句(至少一条);逻辑上,循环体就是需要重复执行的代码

    执行过程:

    让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体; for循环的循环次数由序列中元素的个数决定

    for i in 'abc':    # str
        print('魈!')
    # 魈!
    # 魈!
    # 魈!
    
    for i in [1,2,3,4,5,6]:   # list
        print(i,'你在吗?')
    # 1 你在吗?
    # 2 你在吗?
    # 3 你在吗?
    # 4 你在吗?
    # 5 你在吗?
    # 6 你在吗?
    
  2. range函数 - 创建等差数列

    for i in range(100):
        print('xiao')
    
    '''
    1.range(N)            -   产生等差数列[0, N),差为1     #range(4):0, 1, 2, 3
    2.range(M, N)         -   产生等差数列[M, N),差为1    #range(5,8):5, 6, 7
    3.range(M, N ,step)   -   产生等差数列[M, N),差为step     #range(3, 8, 2):3, 5, 7  ; range(6, 2, -3):6, 3
    '''
    
    # 练习:使用range函数创建等差数列
    for i in range(11):
        print(i)
    for i in range(50,60):
        print(i)
    for i in range(50,91,10):
        print(i)
    for i in range(20,9,-2):
        print(i)
    
  3. 求和和统计个数

    1. 数据求和

    1.定义变量保存结果(最后的和),变量默认值为0
    2.利用循环获取每一个求和对象,然后和保存和的变量进行加法运算
    3.循环结束后,变量的值就是最后的和

    # 案例1  求1+2+3+···+100
    sum1 = 0
    for i in range(1,101):
        sum1 += i
    print(sum1)
    # 案例2  求列表[89, 67, 45, 99, 55, 71, 80, 92]中所有元素的和
    nums = [89, 67, 45, 99, 55, 71, 80, 92]
    sum2 = 0
    for i in nums:
        sum2 += i
    print(sum2)
    # 练习  求整数中所有三位数的和
    sum3 = 0
    for i in range(100,1000):
        sum3 += i
    print(sum3)
    # 练习2 求100以内所有偶数的和
    sum4 = 0
    for i in range(0,100,2):
        sum4 += i
    print(sum4)
    # 练习3 求nums中所有奇数的和
    num5 = 0
    nums = [18, 9, 45, 77, 90, 82, 50, 51]
    for i in nums:
        if i % 2 == 1:
            num5 += i
    print(num5)
    
    1. 统计数据个数
    1. 定义变量保存最后的个数,变量默认值是0
    2. 利用循环获取到每一个统计对象,取到一个个数就加1
    # 案例1   统计num中元素的个数
    nums = [19, 34, 78, 89, 22, 15, 55]
    count = 0
    for i in nums:
        count += 1
    print(count)
    # 案例1   统计num中偶数的个数
    nums = [19, 34, 78, 89, 22, 15, 55]
    count = 0
    for i in nums:
        if i % 2 == 0:
        	count += 1
    print(count)
    # 练习  统计100以内能被3整除的个数
    count = 0
    for i in range(100):
        if i % 3 == 0:
    # for i in range(0,100,3):
            count += 1
    print(count)
    # 练习2  统计所有水仙花数的个数
    count = 0
    for i in range(100,1000):
        if i == (i // 100)**3+(i % 100 // 10)**3 +(i % 10)**3:
            count += 1
            # print(i)
    print(count)
    

2. while循环

  1. while循环

    语法:

    while 条件语句:
        循环体
    

    执行过程:

    不断判断条件语句是否为True, 若为True执行循环体,为False循环结束。

    x = 0
    while x < 5:
        print('魈')
        x += 1
    
  2. forwhile的选择问题

    循环问题优先考虑 for循环,for循环解决不了才使用 while循环

    for的应用场景:循环次数确定

    while的应用场景:循环次数不确定(写代码的时候程序员无法知道循环的次数)

  3. input函数 - 输入函数

    用法:

    变量 = input(‘输入提示信息’) - 提示用户输入数据,并将用户输入的数据保存到指定的变量中(输入以回车结束)

    name = input('请输入一个名字:')   # str
    print(name)
    age = input('请输入年龄:')   # str
    age = int(age)   # int
    print(age, age >=18)
    # 案例:提示用户输入密码,直到输入正确为止
    pw = '123456'
    value = None
    while pw != value:
        value = input('请用户输入密码:')
        
    

3. break循环关键字

  1. break- break是循环关键字,只能在循环体中使用

  2. break的作用:

    结束整个循环(执行循环体的时候如果遇到 break,循环直接结束)

    for i in range(10):
        if i > 2:
            break
        print('hello')
    
  3. while遇到 break

    '''
    while True:
    	需要重复执行的操作
    	if 循环结束条件:
    		break
    '''
    
    pw = '123456'
    while True:
        value = input('请用户输入密码:')
        if value == pw:
            break
    # whileTrue是恒成立的循环,当输入密码不正确时,会一直要求输入密码,且没有次数限制,若密码正确,没有break则会继续要求输入密码,从而陷入死循环。
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值