• python基础(三)


    今日内容概要:

    一、补充

    二、可变不可变类型(重点)

    三、赋值运算(重点)

    四、身份运算(重点)

    五、流程控制之if判断(重点)

    内容详解:

    一、补充

    1、换行符

    # 
     换行
    print(('abc
    def'))
    print('abc
    def')
    # 	制表符(即空格,每种语言空格不同)
    print('abc	def')
    # 加空格
    print('abc',end = ' ')
    print('def',end = ' ')
    print(123)

    2、原生字符串(rawstring)

    print('xxx is \nb')  #xxx is 
    b   表示转意
    print(r'xxx is 
    b')#r的作用取消掉字符串中所有符号的意义

    3、列表类型

    存多个任意类型值,索引对应值

    4、字典类型

    存多个任意类型值,key对应值

    5、布尔类型 

    只有True 和 False

    #直接定义布尔类型的变量值
    tag = True
    #通过比较运算得到布尔值
    10  == 10   
    3 > 2
    #隐式布尔值
    #隐式布尔值为False的数据类型有:0,None,空
    #规则:从左至右,有优先级优先,算到哪返回值到哪
    print(bool(0))#False
    print(1 or 3)#1
    print(1 and 3)#3
    print(0 or False and 1)#False

    二、可变不可变类型

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

    三、赋值运算

    # 1、增量赋值
    # age=18
    # age += 1
    # print(age)
    
    # 2、链式赋值
    # x=10
    # y=x
    # z=y
    
    # z = y = x = 10
    # print(x, y, z)#10 10 10
    # print(id(x), id(y), id(z))#8791399778240 8791399778240 8791399778240
    
    # 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]#解压赋值将5横简化成一横 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)#1.1
    # print(mon1)#2.2
    # print(mon2)#3.3
    # print(_)#[4.4, 5.5]
    
    # *_, 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)#{'k2': 222}
    # dic["kkk"]=111
    # print(dic)#{'k2': 222, 'kkk': 111}
    
    # 对于字典来说解压赋值取出来的是字典的key
    dic = {"k1": 111, "k2": 222}
    x, y = dic
    print(x, y)#k1 k2
    
    
    # 了解
    a,b,c,d,e="hello"
    print(a,type(a))#h <class 'str'>
    print(b)
    print(c)
    print(d)
    print(e)

    四、身份运算

    is与==
    # ==判断的是值是否相等
    x = ['a', 'b']
    y = ['a', 'b']
    # print(x == y)
    
    # is判断的是id是否相等
    # print(id(x))#31188992
    # print(id(y))#31214272
    # print(x is y)#False
    
    # 分析:
    # is判断的结果为True,即二者的id一样,即二者内存地址一样,即二者就是一个东西,即值一定相等
    # 如果==判断的结果为True,即二者的值一样,那么二者的内存地址可能不一样
    
    # x=None
    # y=None
    # # print(x == None)
    # print(x is None)#True
    # print(x is y)#True
    
    # print((10 > 3) is True)#True
    # print((10 > 3) == True)#True
    # x=True
    # y=True
    # z=True
    # print(id(x))#8791406315344
    # print(id(y))#8791406315344
    # print(id(z))#8791406315344
    
    # 结论:如果要判断一个变量是否等于None、True、False,推荐使用is去判断
    x = 10
    y = 10
    print(x is y)#True
    print(x == y)#True
    print(x == 10)#True
    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')
  • 相关阅读:
    无有和无穷
    算法设计 熄灯问题
    WPF 路由事件总结
    C# params关键字
    WPF 布局总结
    C#结构体和类的区别
    C#装箱和拆箱(值类型和引用类型之间的转换)
    OpenGL中平移、旋转、缩放矩阵堆栈操作
    OpenGL图元的颜色属性
    OpenGL基础图形的绘制
  • 原文地址:https://www.cnblogs.com/guojieying/p/13045011.html
Copyright © 2020-2023  润新知