• python 流程控制语句


    1、基本概念

    1.1 流程控制语句

      流程控制语句就是按照一定的步骤来实现某些功能的语句

      python 中主要的流程控制语句:选择语句、条件表达式、循环语句、跳转语句、pass 语句

    1.2 程序结构

    (1)顺序结构:按照代码的顺序依次执行

    (2)选择结构:根据条件表达式的结果选择执行不同的语句

      通常使用 if 语句实现

    (3)循环结构:在一定条件下反复执行某段程序的流程结构

    2、if 语句

    2.1 简单的 if 语句

      语法:如果符合条件,则...

    if 表达式:
        语句块
    # 实例:
    #
    -*- coding:utf-8 -*- # version:python3.7 number = int(input("请输入number的值:")) if number > 5: print("number>5") 执行结果: 请输入number的值:6 number>5

    2.2 if...else 语句

      语法:如果符合条件,则...,否则...

    if 表达式:
        语句块1
    else:
        语句块2
    # 实例:
    #
    -*- coding:utf-8 -*- # version:python3.7 score = int(input("请输入你英语成绩:")) if score >= 60: print("你的英语成绩合格") else: print("你的英语成绩不合格") 执行结果: 请输入你英语成绩:56 你的英语成绩不合格

    2.3 if...elif...else 语句

      语法:如果符合条件,就...,否则,如果满足另一种条件,则...

    if 表达式1:
        语句块1
    elif 表达式2:
        语句块2
    ......
    else:    #如果都不满足则执行语句块n
        语句块n
    实例:
    # -*- coding:utf-8 -*-
    # version:python3.7
    # 猜数游戏
    
    number = 55
    print("猜数字游戏!")
    number_in = int(input("你猜的数字是:"))
    if number_in == number:
        print("你猜对了!")
    elif number_in > number:
        print("你猜的数字大了")
    else:
        print("你猜的数字小了")
    
    执行结果:
    猜数字游戏!
    你猜的数字是:56
    你猜的数字大了
    实例:折中算法
    # -*- coding:utf-8 -*-
    # version:python3.7
    # 输入一个最大5位的正整数,判断这是几位数
    
    num = int(input("please enter this number:"))
    if num >= 1000:
        if num >= 10000:
            print("该数为5位数")
        else:
            print("该数为4位数")
    else:
        if num >= 100:
            print("该数为3位数")
        elif num >= 10:
            print("该数为2位数")
        else:
            print("该数为1位数")

      注意1:如果已经定义了一个布尔类型的变量 flag,推荐使用如下判断语句:

    if flag:
    if not flag:

       而不推荐使用如下判断语句:

    if flag == True:     #不推荐
    if flag == False:    #不推荐

      注意2:判断变量是否等于数值时:

    # 建议使用:
    if 1== a
    # 不建议使用:if a == 1,容易错写为
    if a = 1

    2.4 if 语句的嵌套

      语法:嵌套语法可以有多种结合,此处列举一列如下

    if 表达式1:
            if 表达式2:
                语句块2
            else:
                语句块3
    else:
        语句块1
    # 实例:判断是否为酒后驾车
    #
    -*- coding:utf-8 -*- # version:python3.7 print("为了您和家人的安全,严禁酒后驾车!") proof = int(input("请输入每100毫升血液的酒精含量:")) if proof < 20: print("您还不构成饮酒驾车,可以开车,但请注意安全!") else: if 80 > proof >= 20: print("已经达到酒后驾驶标准,请不要开车!") else: print("您已经达到醉酒驾驶标准,千万不要开车!!!") 执行结果1: 为了您和家人的安全,严禁酒后驾车! 请输入每100毫升血液的酒精含量:90 您已经达到醉酒驾驶标准,千万不要开车!!! 执行结果2: 为了您和家人的安全,严禁酒后驾车! 请输入每100毫升血液的酒精含量:19 您还不构成饮酒驾车,可以开车,但请注意安全!

    3、循环语句

    3.1 while 循环

      一直重复,直到条件不满足时停止,语法:

    while 条件表达式:
        循环体
    # 实例:while循环实现1+2+...+100
    # -*- coding:utf-8 -*-
    # version:python3.7
    
    sum = 0
    n = 0
    while n <= 100:
        sum = sum + n
        n = += 1
    print("1+2+...+100=",sum)
    
    执行结果:
    1+2+...+100= 5050

    3.2 for 循环

      一般重复一定次数,通常用于迭代、枚举或遍历,语法:

    for 迭代变量 in 对象:
        循环体
    实例:for循环实现1+2+...+100
    # -*- coding:utf-8 -*-
    # version:python3.7

    sum
    = 0 #保存累加结果的变量 for i in range(101): #range()函数实现数值循环:生成一系列连续整数 sum += i #实现累加 print("1+2+...+100=",sum) 执行结果:
    1+2+...+100= 5050

      range() 函数实现数值循环

        主要作用:生成一系列连续整数

        基本语法:range(start,end,stop)

          start 指起始值(包括)、end结束值(不包括)、stop

    # range()实例:
    # -*- coding:utf-8 -*-
    # version:python3.7

    for i in range(1,10,2): #输出1,3,5,7,9(从1开始到10结束,隔2个) print(i,end=' ') #range默认输出到多行,end=' '指以空格分隔

    执行结果:
    1 3 5 7 9

      for循环除了可以循环数值,也可以遍历字符串

    # 实例:for循环遍历字符串
    # -*- coding:utf-8 -*-
    # version:python3.7
    
    string = "我可以的"
    print(string)
    for ch in string:
        print(ch)
    
    执行结果:
    我可以的
    我
    可
    以
    的

    3.3 循环嵌套

    # 语法1
    while 条件表达式1:
        while 条件表达式2:
            循环体2
        循环体1
    
    # 语法2
    while 条件表达式:
        for 迭代变量 in 对象:
            循环体2
        循环体1
    
    # 语法3
    for 迭代变量 in 对象:
        while 条件表达式:
            循环体2
        循环体1
    
    # 语法4,5......
    实例:使用循环嵌套,输出99乘法表
    # -*- coding:utf-8 -*-
    # version:python3.7
    
    for i in range(1,10):         #控制行数
        for j in range(1,i+1):    #输出与行数相等的列,range不包括结束值,所以i+1
            print(str(j)+"X"+str(i)+"="+str(j*i)+"	",end='')    #	:转义字符一个Tab键,end='':在一行输出
        print("")    #转行
    
    执行结果:
    1X1=1    
    1X2=2    2X2=4    
    1X3=3    2X3=6    3X3=9    
    1X4=4    2X4=8    3X4=12    4X4=16    
    1X5=5    2X5=10    3X5=15    4X5=20    5X5=25    
    1X6=6    2X6=12    3X6=18    4X6=24    5X6=30    6X6=36    
    1X7=7    2X7=14    3X7=21    4X7=28    5X7=35    6X7=42    7X7=49    
    1X8=8    2X8=16    3X8=24    4X8=32    5X8=40    6X8=48    7X8=56    8X8=64    
    1X9=9    2X9=18    3X9=27    4X9=36    5X9=45    6X9=54    7X9=63    8X9=72    9X9=81

    4、跳转语句

    4.1 break 语句

      直接跳出循环

    # 实例:电影院座位五行七列,你的座位为第二行第三列,请找出你的座位
    # -*- coding:utf-8 -*-
    # version:python3.7
    
    for row in range(1,5):
        print("当前所在排:",row)
        if row == 2:
            print("这是您座位所在排")
            for column in range(1,8):
                print("当前所在列:",column)
                if column == 3:
                    print("这是您的座位")
                    break
            break
    
    执行结果:
    当前所在排: 1
    当前所在排: 2
    这是您座位所在排
    当前所在列: 1
    当前所在列: 2
    当前所在列: 3
    这是您的座位

    # 如果不使用break跳转语句跳出循环,会将所有排数都打印一遍

    4.2 continue 语句

      不能跳出整个语句,只能退出本次循环,提前进入下次循环

    # 实例:逢七过游戏(叫数游戏:遇到七的倍数和以七结尾的数过)
    # -*- coding:utf-8 -*-
    # version:python3.7
    
    total = 99    #假定99次都过
    for number in range(1,100):    #从1循环到99
        if number % 7 == 0:    #是七的倍数
            continue           #继续下一次叫数
        else:
            string = str(number)
            if string.endswith('7'):    #判断是否以七结尾
                continue       #继续下一次循环
        total -= 1    #可过次数-1
    print("从1到99可以过",total,"")
    
    执行结果:
    从1到99可以过 22 次

    4.3 pass 语句

      表示空语句,不做任何事情,起占位作用

    # 实例:输出1-10之间的偶数,不是偶数的先使用pass空语句占位
    # -*- coding:utf-8 -*-
    # version:python3.7
    
    for i in range(1,11):
        if i % 2 == 0:
            print(i,end=' ')    #输出1-10之间的偶数,中间使用空格隔开
        else:
            pass    #不是偶数的先占位
    
    执行结果:
    2 4 6 8 10 

     5、算法入门

    5.1 打印九九乘法表

    # -*- coding:utf-8 -*-
    # version:python3.7
    
    for i in range(1, 10):
        for j in range(1, i+1):
            print("{}X{}={}".format(j, i, j*i), end='	')    #格式化字符串,后续篇幅讲解
        print("")
    
    #执行结果:
    1X1=1    
    1X2=2    2X2=4    
    1X3=3    2X3=6     3X3=9    
    1X4=4    2X4=8     3X4=12    4X4=16    
    1X5=5    2X5=10    3X5=15    4X5=20    5X5=25    
    1X6=6    2X6=12    3X6=18    4X6=24    5X6=30    6X6=36    
    1X7=7    2X7=14    3X7=21    4X7=28    5X7=35    6X7=42    7X7=49    
    1X8=8    2X8=16    3X8=24    4X8=32    5X8=40    6X8=48    7X8=56    8X8=64    
    1X9=9    2X9=18    3X9=27    4X9=36    5X9=45    6X9=54    7X9=63    8X9=72    9X9=81

    5.2 打印菱形

    #分析:
    * #3个空格 + 1个*号 *** #2个空格 + 3个*号 ***** #1个空格 + 5个*号 ******* #0个空格 + 7个*号 ***** #1个空格 + 5个*号 *** #2个空格 + 3个*号 * #3个空格 + 1个*号
    # -*- coding:utf-8 -*-
    # version:python3.7
    
    n = 7    #定义菱形最长行*数
    e = n//2
    for i in range(-e, e+1):
        print("{}{}".format(abs(i)*" ", (n-(2*abs(i)))*"*"))
    
    #执行结果:
       *
      ***
     *****
    *******
     *****
      ***
       *

    5.3 打印100以内的斐波那契数列

    # 打印100以内的斐波那契数列
    # -*- coding:utf-8 -*- # version:python3.7


    a2 = 1 a1 = 1 print(a2,end=' ') print(a1,end=' ') while True: a = a2 + a1 if a > 100: break else: print(a,end=' ') a2 = a1 a1 = a

    执行结果:
    1 1 2 3 5 8 13 21 34 55 89

    5.4 求斐波那契数列的第101项

    # 求斐波那契数列的第101项
    # -*- coding:utf-8 -*-
    # version:python3.7
    
    a2 = 1
    a1 = 1
    count = 2
    
    while True:
        a = a2 + a1
        if count == 100:
            print(a,end=' ')
            break
        count += 1
        a2 = a1
        a1 = a
    
    执行结果:
    573147844013817084101

    5.5 求10万以内的所有质数

      一般考虑时间复杂度,算法最优,但开始刚接触算法,先不用考虑这么多

    # 先求20以内的所有质数,再求10万以内的所有质数
    # -*- coding:utf-8 -*-
    # version:python3.7

    for i in range(2,20): count = 0 for j in range(1,i): if i % j == 0: count += 1 if count == 1: print(i,end=' ')

    执行结果:
    2 3 5 7 11 13 17 19
  • 相关阅读:
    mysql基础语句
    .opt,frm,.MYD,.MYI文件如何转为.sql文件?
    如何使用phpstudy本地搭建多站点(每个站点对应不同的端口)
    吐槽下微软的vs code编辑器
    补码的两个重要问题
    注意力不集中是因为你没有紧迫感
    弧度与角度的转换公式推导
    ps图层面板上的【透明度】与【填充】的区别
    【ctrl+A】与【ctrl+单击图层缩略图】有什么区别?
    DRF-认证 权限 频率组件
  • 原文地址:https://www.cnblogs.com/zyybky/p/12435931.html
Copyright © 2020-2023  润新知