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

    一 可变不可变类型

    ​ 可变类型:

    ​ 值改变,id不变,证明改的是原值,即原值是可以被改变的

    ​ 不可变类型:

    ​ 值改变,id也变了,证明产生新的值,压根没有改变原值,证明原值是不可以被修改的

    ​ 1) int 是不可变类型

    ​ 2)float是不可变类型

    ​ 3)str是不可变类型

    小结:int,float,str类型的值是都被设计成了不可能分割的整体,不能够被改变

    ​ 4) list是可变类型

    ​ 5) dic是可变类型

    ​ 定义:{ } 内用逗号隔开多key:value,

    ​ 其中value可以是任意类型,

    ​ 但是key必须是不可变类型

    ​ 字典是不可哈希的

    ​ 6) bool是不可变类型

    二 条件

    ​ 什么是条件?什么可以当做条件?为何要用条件?

    ​ 第一大类:显式布尔值:True,False

    ​ 条件可以是:比较运算符

    		age = 18
    		print(age > 16) #条件判断之后会得到一个布尔值
    

    ​ 条件可以是:True、False

    		is_beatiful= True
    		print(is_beatiful) #True
    

    ​ 第二大类:隐式布尔值:所有的值都可以当成条件去使用,

    其中0,None,空(空字典,空字符串,空字典)=》代表的布尔值为False,其余都为True

    =======

    三 流程控制之 if

    语法1:

    	if 条件:
    			代码1
    			代码2
    			代码3
    

    语法2:

    if 条件:
    		代码1
    else:
    		代码2
    

    语法3:

    if 条件:
    		代码1
    elif:
    		代码2
    else:
    		代码3
    	
    

    例:

    score = input('请输入您的成绩:') # score="18"
    score=int(score)
    
    if score >= 90:
        print('优秀')
    elif score >= 80:
        print('良好')
    elif score >= 70:
        print('普通')
    else:
        print('很差,小垃圾')
    

    ​ if 嵌套:

    age = 18
    is_beautiful = True
    star = '摩羯座'
    
    if 16 < age < 20 and is_beautiful and star == '摩羯座':
        print('开始表白。。。。。')
        is_successful = True
        if is_successful:
            print('两个从此过上羞羞的生活。。。')
    else:
        print('阿姨好!')
    print('其他代码.............')
    

    四 流程控制之 while

    ​ 循环的语法与基本使用

    print(1)
    while 条件:
         代码1
         代码2
         代码3
    print(3)
    

    ​ 死循环的语法与效率问题

    while True:
        name=input('your name >>>> ')
        print(name)
    

    ​ 纯计算无 io 的死循环会导致致命的效率问题

    while True:
        1+1
    

    ​ 退出循环的两种方式

    方式一: 将条件改为False,等到下次循环判断条件时才会生效

    tag=True
    while tag:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            tag = False # 之后的代码还会运行,下次循环判断条件时才生效
        else:
            print('账号名或密码错误')
    
        print('====end====')
    

    方式二:break 只要运行到 break就会立刻终止本层循环

    while True:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            break # 立刻终止本层循环
        else:
            print('账号名或密码错误')
    
        # print('====end====')
    

    ​ while 循环嵌套与结束

    tag=True
    while tag:
        while tag:
            while tag:
                tag=False
        
    
    # 每一层都必须配一个break
    while True:
        while True:
            while True:
                break
            break
        break
    
    while True:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            while True:
                cmd=input("输入命令>: ")
                if cmd == 'q':
                    break
                print('命令{x}正在运行'.format(x=cmd))
            break # 立刻终止本层循环
        else:
            print('账号名或密码错误')
        print('====end====')
    

    ​ 改条件方式

    tag=True
    while tag:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            while tag:
                cmd=input("输入命令>: ")
                if cmd == 'q':
                    tag=False
                else:
                    print('命令{x}正在运行'.format(x=cmd))
        else:
            print('账号名或密码错误')
    

    while +continue:结束本次循环,直接进入下一次

    注:在continue之后添加同级代码毫无意义,因为永远无法运行

    count=0
    while count < 6:
        if count == 4:
            count+=1
            continue
            # count+=1 # 错误
        print(count)
        count+=1
    

    while +else:针对break

    count=0
    while count < 6:
        if count == 4:
            count+=1
            continue
        print(count)
        count+=1
    else:
        print('else包含的代码会在while循环是在正常结束后,且不是被 break 打断,才会运行')
    

    终版:

    count=0
    while count < 3:
        inp_name=input('请输入您的账号:')
        inp_pwd=input('请输入您的密码:')
    
        if inp_name  == username and inp_pwd == password:
            print('登录成功')
            while True:
                cmd=input("输入命令>: ")
                if cmd == 'q': # 整个程序结束,退出所有while循环
                    break
                else:
                    print('命令{x}正在运行'.format(x=cmd))
            break
        else:
            print('账号名或密码错误')
            count+=1
    else:
        print('输错3次,退出')
    

    五 流程控制之 for

    ​ 1、什么是 for 循环

    ​ 循环就是重复做某件事,for循环是 python 提供第二种循环机制,它是不按索引取值的。

    ​ 2、为何要有 for 循环

    ​ 理论上 for 循环能做的事情,while 循环都可以做

    ​ 之所以要有 for 循环,是因为for 循环在循环取值(遍历取值)比 while 方便,

    ​ 3、如何用 for 循环

    ​ 语法:

    for 变量名 in 可迭代对象:#可迭代对象可以是:列表、字典、字符串、元组、集合
    	  代码 1
    	  代码 2
    	  代码 3
    	  。。。
    

    ​ 一:基本使用之循环取值

    
    

    ​ 二:总结 for循环与 while 循环的异同

    ​ 1.相同之处:都是循环,for 循环可以干的事,while 循环可以干

    ​ 2.不同之处:

    ​ while 循环称之为条件循坏,循坏次数取决于条件何时变为假

    ​ for 循环称之为‘取值循环’,循环次数取决 in 后可迭代对象包含的元素个数

    for x in [1,2,3]:
    		print('===>')
    

    ​ 三:for 循环控制循环次数:range( )

    range(3 ):顾头不顾尾

    python2:生成一个列表[0, 1, 2 ] : 相当于一框鸡蛋

    python3:range(0, 3): 相当于一只会下蛋的老母鸡

    for + break + else 用法

    for + break:同 while + break 一样

    for + else:同 while + else 一样

    username = 'egon'
    password= '123'
    
    for i in range(3):
        user_name = input('请输入用户名:').strip()
        user_pwd = input('请输入密码:').strip()
        if username == user_name and user_pwd == password:
            print('登录成功')
            break
        else:
            print('登录失败')
    else:
      print('输出三次,退出')
    

    四:range 补充知识(了解)

    ​ 1、for 搭配

    五:for + continue

    for i in range(6): # 0 1 2 3 4 5
        if i == 4:continue  #当循环体代码只有一行时可以这样写 (但PEP8不建议)
        print(i)
    

    结果展示:

    0
    1
    2
    3
    5
    

    六:for 循环嵌套:外层循环一次,内层循环需要完整的循环完毕

    for i in range(3):
        print('外层循环--->', i)
        for j in range(2):
            print('     内层循环--->', j)
    
    

    结果展示:

    外层循环---> 0
         内层循环---> 0
         内层循环---> 1
    外层循环---> 1
         内层循环---> 0
         内层循环---> 1
    外层循环---> 2
         内层循环---> 0
         内层循环---> 1
    

    补充:终止 for 循环只有 break 一种方案

  • 相关阅读:
    点云处理算法核心-八叉树
    点云平台之cloudCompare开发三
    点云法向量估计方法
    PCL源码编译
    PCL裁剪之多边形裁剪
    点云平台PCLvisualization多边形裁剪方法初探
    点云合并pcl重载“+”
    点云平台之CloudCompare开发二
    点云平台之QtitanRibbon
    神舟电脑 战神ZX6-CT5A2 键盘失灵
  • 原文地址:https://www.cnblogs.com/xy-han/p/12450257.html
Copyright © 2011-2022 走看看