zoukankan      html  css  js  c++  java
  • 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')
  • 相关阅读:
    【PAT甲级】1043 Is It a Binary Search Tree (25 分)(判断是否为BST的先序遍历并输出后序遍历)
    Educational Codeforces Round 73 (Rated for Div. 2)F(线段树,扫描线)
    【PAT甲级】1042 Shuffling Machine (20 分)
    【PAT甲级】1041 Be Unique (20 分)(多重集)
    【PAT甲级】1040 Longest Symmetric String (25 分)(cin.getline(s,1007))
    【PAT甲级】1039 Course List for Student (25 分)(vector嵌套于map,段错误原因未知)
    Codeforces Round #588 (Div. 2)E(DFS,思维,__gcd,树)
    2017-3-9 SQL server 数据库
    2017-3-8 学生信息展示习题
    2017-3-5 C#基础 函数--递归
  • 原文地址:https://www.cnblogs.com/guojieying/p/13045011.html
Copyright © 2011-2022 走看看