zoukankan      html  css  js  c++  java
  • dayⅣ:赋值运算+if判断

    一、可变、不可变类型

    1、可变类型:list,dict

    #在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改原来内存空间中的值,即原值可变
    

    2、不可变类型:int、float、str

    #在值改变的情况下,id号也跟着变了,也就是说内存地址变了,证明不是在改原来内存空间中的值,而是申请了新的内存空间,产生了新的值,即原值不可变
    
    x=10
    print(id(x))
    x=11
    print(id(x))
    
    x=10.3
    print(id(x))
    x=11.4
    print(id(x))
    
    x="abc"
    print(id(x))
    x="aBc"
    print(id(x))
    
    l1=[111,"aaaa"]
    print(id(l1))
    l1[0]=222222
    print(l1)
    print(id(l1))
    
    dic={'k1':111,'k2':222}
    print(id(dic))
    dic['k1']="abc"
    print(dic)
    print(id(dic))
    
    
    # 字典的value可以是任意类型,但是字典的key必须是不可变类型
    dic={1111111:"abc","k2":"def",3.1:'aaa'}
    print(dic[1111111])
    
    
    # 下面写法推荐使用列表代替
    dic={0:'egon',1:"egon1",2:"egon3"}
    print(dic[0])
    print(dic[1])
    print(dic[2])
    
    # 了解:不可哈希类型就是可变类型,可哈希类型就是不可变类型
    dic={[1,2,3]:"abc"}
    

    二、赋值运算

    1、增量赋值

    age=18
    age += 1
    print(age)
    

    2、链式赋值

    x=10
    y=x
    z=y
    
    z = y = x = 10
    print(x, y, z)
    print(id(x), id(y), id(z))
    

    3、交叉赋值

    m = 111
    n = 222
    
    temp=m
    m=n
    n=temp
    m, n = n, m
    print(m, n)
    

    4、解压赋值

    salaries = [1.1, 2.2, 3.3, 4.4, 5.5]
    mon0 = salaries[0]
    mon1 = salaries[1]
    mon2 = salaries[2]
    mon3 = salaries[3]
    mon4 = salaries[4]
    
    mon0, mon1, mon2, mon3, mon4 = salaries
    print(mon0)
    print(mon1)
    print(mon2)
    print(mon3)
    print(mon4)
    
    # 变量名的个数必须与包含的值的个数相同,多一个不行,少一个也不行
    mon0, mon1, mon2, mon3, mon4, mon5 = salaries
    mon0, mon1, mon2, mon3 = salaries
    
    mon0, mon1, mon2, *_ = salaries
    print(mon0)
    print(mon1)
    print(mon2)
    print(_)
    
    *_, x, y, z = salaries
    print(x)
    print(y)
    print(z)
    
    x, *_, z = salaries
    print(x)
    print(z)
    
    dic={"k1":111,"k2":222}
    del dic['k1']
    print(dic)
    dic["kkk"]=111
    print(dic)
    
    # 对于字典来说解压赋值取出来的是字典的key
    dic = {"k1": 111, "k2": 222}
    x, y = dic
    print(x, y)
    
    # 了解
    a,b,c,d,e="hello"
    print(a,type(a))
    print(b)
    print(c)
    print(d)
    print(e)
    

    三、身份运算:is与==

    # ==判断的是值是否相等
    x = ['a', 'b']
    y = ['a', 'b']
    print(x == y)
    
    # is判断的是id是否相等
    print(id(x))
    print(id(y))
    print(x is y)
    
    # 分析:
    # is判断的结果为True,即二者的id一样,即二者内存地址一样,即二者就是一个东西,即值一定相等
    # 如果==判断的结果为True,即二者的值一样,那么二者的内存地址可能不一样
    
    x=None
    y=None
    # print(x == None)
    print(x is None)
    print(x is y)
    
    print((10 > 3) is True)
    print((10 > 3) == True)
    x=True
    y=True
    z=True
    print(id(x))
    print(id(y))
    print(id(z))
    
    
    # 结论:如果要变量一个变量是否等于None、True、False,推荐使用is去判断
    x = 10
    y = 10
    print(x is y)
    print(x == y)
    print(x == 10)
    print(x is 10) # 不要这么用
    

    四:if判断

    1、什么是if判断

        判断 条件1 并且 条件2:
            做什么事。。。
        否则:
            做什么事。。。
    

    2、为何要有if判断

    # 为了控制计算机能够像人一样去完成判断的过程
    

    3、如何用if判断

    (1)介绍

    print('start....')
    if 3 != 3 and 10 > 8:
        print("条件成立1")
        print("条件成立2")
        print("条件成立3")
    else:
        print("条件不成立1")
        print("条件不成立2")
        print("条件不成立3")
    print('end....')
    
    # if判断完整的语法:
    if 条件1:
        子代码块1
    elif 条件2:
        子代码块2
    elif 条件3:
        子代码块3
    ...
    else:
        子代码块
    

    (2)必须要有的是if,只有一个if是可以的

    inp_name=input('你的名字: ')
    if inp_name == "egon":
        print('输入正确')
    
    print('其他代码')
    

    (3)if+elif

    inp_name=input('你的名字: ')
    if inp_name == "egon":
        print('您的身份是超级vip')
    elif inp_name == "张三":
        print('您的身份是钻石vip')
    elif inp_name == "李四":
        print('您的身份是铂金vip')
    
    print('其他代码')
    

    (4)if+else

    inp_name = input('你的用户名: ')
    inp_pwd = input('你的密码: ')
    
    if inp_name == "egon" and inp_pwd == "123":
        print('登录成功')
    else:
        print("刚刚输入的用户名或密码错误")
    
    print('其他代码')
    

    (5)if+elif+else

    #如果:成绩>=90,那么:优秀
    
    #如果成绩>=80且<90,那么:良好
    
    #如果成绩>=70且<80,那么:普通
    
    #其他情况:很差
    
    score = input("请输入您的成绩: ")
    score = int(score)
    if score >= 90:
        print("优秀")
    elif score >= 80:
        print("良好")
    elif score >= 70:
        print("普通")
    else:
        print("很差")
    
    # 补充
    age = 19
    age >= 18 and age <= 20
    print(20 >= age >= 18)
    print(18 <= age <= 20)
    
    # if判断嵌套if
    print('ok0')
    if 10 > 3:
        if 1 == 1:
            print('ok1')
            print('ok2')
        print('ok3')
    print('ok4')
    
  • 相关阅读:
    Adding timestamps to terminal prompts
    opensuse nvidia
    小物体检测
    openSUSE 多个GPU设置 深度学习 Caffe PyTorch 等
    openSUSE 高清屏设置
    手把手教你NLTK WordNet使用方法
    [ICCV 2019] Weakly Supervised Object Detection With Segmentation Collaboration
    Instance Segmentation入门总结
    [PAMI 2018] Differential Geometry in Edge Detection: accurate estimation of position, orientation and curvature
    [CVPR2017] Deep Self-Taught Learning for Weakly Supervised Object Localization 论文笔记
  • 原文地址:https://www.cnblogs.com/qujiu/p/13046034.html
Copyright © 2011-2022 走看看