zoukankan      html  css  js  c++  java
  • Python 流程控制

    一、流程控制之判断

    if:主要用于判断事物的对错,真假,是否可行

    语法结构:
    if 条件:
    	代码块1
    elif 条件:
    	代码块2
    else 条件:
    	代码块3
    
    例1:
    gender = "female"
    age = 18
    is_beautiful = True
    is_success = True
    
    if age == 18 and gender == 'female' and is_beautiful == True:
        print("表白小姐姐")
        if is_success:
            print('在一起')
        else:
            print('什么爱情不爱情的,爱nmlgb的爱情')
    else:
        print('走开')
    
    例2:
    score = input('>>>:')
    score = int(score)
    
    if 90 <= score:
        print("优秀")
    elif score >= 80:
        print("良好")
    elif score >= 70:
        print("中等")
    elif score >= 60:
        print("及格")
    else:
        print("不及格")
        
    例3:#登录功能
    username = input('请输入您的用户名:').strip()
    password = input('请输入您的密码:').strip()
    if username == "bob" and password == '123':
        print("登录成功")
    else:
        print("登录失败")
    

    二、流程控制之循环

    while循环:

    语法结构:
    while 条件:
    	代码块1
        代码2
        代码3
        ......
    # while的运行步骤:
    # 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、......
    # 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止
    
    continue:跳过本次循环,执行下一次循环  *****
    continue下面不管有多少行代码,都不会执行
    注意:在循环中,如果使用continue这个关键字,在使用关键字之前,需要确认循环的计数是否修改,否则可能会导致死循环
    
    
    break:结束本层循环,单纯指代当前while  *****
    只能结束一层循环
    
    

    img
    Python中的计数方法:
    几乎所有的程序语言都选择从0开始计数,因此,除非需求的特殊要求,否则循环的计数都从0开始

    死循环
    count = 0
    while True:
        print(count)
        count += 1
       
    #打印50遍hello word
    #1.定义一个整数变量,记录循环次数
    i = 1
    #2.开始循环
    while i <= 50
    	#1,希望在循环内执行的代码块
    	print("hello world")
    	#2,处理计数器
    	i = i + 1
    	
    用户认证程序:
    # 限制登录次数,如果登录3次失败,锁定账户
    username = "bob"
    password = "123"
    #记录错误验证的次数
    count = 0
    while count < 3:
        inp_name = input('请输入您的用户名:')
        inp_psw = input('请输入您的密码:')
        if inp_name == username and inp_psw == password:
            print("登录成功")
            break   # 结束本层循环,后面的不执行了
        else:
            print("登录失败")
            count += 1
        if count == 3
        	print('锁定账户')
            
            
            
            
            
    打印1-10之间除7以外的数字
    count = 0
    while count < 10:
        count += 1
        if count == 7:
            continue
        print(count)
    

    while + else的使用:
    当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句

    例:
    count =0
    while count < 5:
        count += 1
        print(count)
    else:
        print("循环结束")   #没有被break打断,所以执行了该行代码
        
    如果执行过程中被break,就不会执行else后的语句
    例:
    count =0
    while count < 5:
        count += 1
        if count == 3:
            break
        print(count)
    else:
        print("循环结束")   #由于循环被break打断了,所以不执行else后的输出语句
    
    

    while嵌套:

    username = "bob"
    password = "123"
    count = 0
    while count < 3: #第一层循环
        inp_name = input('请输入您的用户名:')
        inp_psw = input('请输入您的密码:')
        if inp_name == username and inp_psw == password:
            print("登录成功")
            while True:  #第二次循环
                cmd = input(">>>:")
                if cmd == "exit":
                    break
                print("执行指令cmd")
            break   # 结束本层循环,后面的不执行了
        else:
            print("登录失败")
            count += 1
        if count == 3:
            print('锁定账户')
    
    #改进
    username = "bob"
    password = "123"
    tag = True
    count = 0
    while tag: #第一层循环
        inp_name = input('请输入您的用户名:')
        inp_psw = input('请输入您的密码:')
        if inp_name == username and inp_psw == password:
            print("登录成功")
            while tag:  #第二次循环
                cmd = input(">>>:")
                if cmd == "exit":
                    tag = False
                else:
                    print("执行指令cmd")
        else:
            print("登录失败")
            count += 1
        if count == 3:
        	print('锁定账户')
    

    for循环:

    for:给我们提供了一种不依赖于索引的取值方式

    语法结构:
    for 变量 in 容器类型(列表,字符串,字典):
    容器对象中有几个值,他就循环几次
    #字典对象,无法直接访问值value
    
    

    img

    例1
    for item in "abc":
    	print(item)
    #运行结果:
    a
    b
    c
    
    例2:
    for item in ["bob","jack","mary"]:
        print(item)
    #运行结果:
    bob
    jack
    mary
    
    例3
    d1 = {'a':1,'b':2,"c":3}
    for i in d1:
        print(d1[i])
    #运行结果
    1
    2
    3
    
    注意:range() 顾头不顾尾
    # start  stop  sep
    for i in range(0,10,9):
    	print(i)
    #运行结果
    0
    9
    
    例5:
    for i in range(0,10)
    print(i)
    
    

    注意:break 与 continue也可以用于for循环,使用语法同while循环

    for i in range(0,10):
        if i == 7:
            continue
        if i == 9:
            break
        print(i)
    

    for+else:

    for循环正常执行结束,就会执行else对应的代码块
    非正常结束,例如break打断,就不会执行

    for i in range(10):
        if i == 5:
            break
        print(i)
    else:
        print('执行成功')
    

    for嵌套:

    #请用for循环嵌套的方式打印如下图形:
    *****
    *****
    *****
    
    for i in range(3):
        for j in range(5):
            print("*",end='')
        print()  # print()表示换行
    
    #打印九九乘法表
    """
    九九乘法表:
    1x1=1
    2x1=2 2x2 =4
    。。。。     
    """
    方法一:
    row=1
    while row<=9:
        col =1
        while col<=row:
            print("%d * %d = %d" %(col,row,col*row),end="	")
            col +=1
        # print("第 %s 行 " % row)
        print()
        row +=1
     
    方法二:
    for i in range(1,10):
        for j in range (1,i+1):
            print(f'{i}x{j}={i*j}',end="	")
        print()
    
    例:
    """打印:
    
         *         *号:1  空格:4
        ***        *号:3  空格:3
       *****       *号:5  空格:2
      *******      *号:7  空格:1
     *********     *号:9  空格:0
    """
    
    max_level = 5
    
    for i in range(1,max_level+1):
    
        for j in range(max_level-i):
            print(" ",end="")
        for z in range(2*i-1):
            print("*",end="")
        print()
    
    
  • 相关阅读:
    vue 移动端商城搭建 (一)
    关于mantisBT2.22安装插件Inline column configuration 2.0.0时提示缺少依赖jQuery UI Library 1.8
    mantis2.22.1中添加管理员密码修改框
    mantisbt2.22.1 中使用自带的phpmailer发送邮件(实测可用)
    Mac配置Jenkins(构建Allure模板报告)
    ATX插件机制-学习学习
    查看包名和Activity的小工具
    pytest跳过指定的测试或模块
    pytest常用命令参数
    关于pytest使用allure生成报告时,报一堆警告和缺少XX模块
  • 原文地址:https://www.cnblogs.com/baohanblog/p/12143024.html
Copyright © 2011-2022 走看看