Python学习Day4

一、内存管理
1.Cpython解释器的垃圾回收机制
    什么是垃圾:当一个值身上没有人绑定任何变量(该值的引用计数=0)时,该值就是一个垃圾

    引用计数增加
    age=18    18的引用计数等于1
    x=age     18的引用计数等于2
    print(age)
    print(x)


    引用计数减少
    age=19    18的引用计数等于1
    print(age)

    del x     18的引用计数等于0

2.变量值的三个特征:
    id:反映的是内存地址
    type:数据烈性
    值:
    age=18
    print(id(age))
    print(type(age))
    print(age)

总结:
    2.1.id相同,值一定相同
    2.2.值相同,id可以不同


3. is与==
==:值是否相等
is:id是否相等

4.可变类型与不可变类型
可变类型:值改变,id不变,证明就是在改变原值
不可变类型:值改变,id也变,证明根本不是在改变原值,是创建了新值,原值就是不可变类型

二、Python2中与用户交互
1. 在python3中只有一个input:
    特点:会用户输入的任意内容都存成str类型

    x=input('>>>: ') #x='123123123'
    print(type(x))

    salary=input('>>: ') #salary='3000'
    salary=int(salary)
    print(salary * 12) 

2. 在python3中只有一个raw_input,与python3的input一模一样
    x=raw_input('>>>: ')

    要求用户必须输入一个明确的类型,输入什么类型就存成什么类型
    x=input('>>>: ')
    
三、数据类型的基本使用
    一: 数字类型
    1. 整型int
    作用:用来记录年龄、等级、各种号码状态
    定义:
        age=10 #age=int(10)
        print(type(age))
    使用:
        print(age + 1)
        print(age > 3)

    2. 浮点型float
    作用:用来记录身高、体重、工资状态
    定义:
        salary=3.1 #salary=float(3.1)
        print(type(salary))
    使用:
        print(3.1 + 2.3)
        print(3.1 > 2.3)
        print(3.1 > 2)
        print(3.1 + 2)

    二:字符串类型str
    作用:用来记录描述性质状态,比如名字、性别
    定义:在单引号('')、双引号("")、三引号内(''' ''',""" """),包含一系列的字符
        x='abc' # x=str('abc')
        print(type(x))
        y="abc"
        z="""
        abc
        xxxx
        """

        print(type(x))
        print(type(y))
        print(type(z))

        msg='my name is "egon"'
    使用:
        print('abc'+'def') # 仅限于str类型直接相加
        print('abc'*10) # *的只能是数字

    了解:ASCII表
        x='abcdef'
        y='z'
        print(x > y)

        print('a' > 'Z' )
        print('a' > 10 )


    三:列表类型list
    作用:用来记录多个值,用索引对应值,索引反映是位置
    定义:在[]内用逗号分隔开多个任意类型的值
        l=[1,3.1,'xxx',['a','b','c']] #l=list(...)
        print(type(l))
    使用
        print(l[0])
        print(l[2])
        print(l[3][0])

        students_info=[
            ['egon',18,['play',]],
            ['alex',18,['play','sleep']]
        ]
            print(students_info[1][2][0])



    四:字典类型dict
    作用:用来记录多个值,用key对应value,其中key对value有描述性的功能
    定义:在{}内,用逗号分割开多元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key通常应该是str类型
        d={'x':1,'y':3.1,'z':['a','b'],'m':{'aaa':1111}} #d=dict(...)
        print(type(d))
    使用:
        print(d['x'])
        print(d['m']['aaa'])
        print(d['z'][1])


    列表的方式
            name   age  gender   compay_info
        emp_info=['egon',18,'male',['Oldboy','SH',200]]
        print(emp_info[1])
        print(emp_info[3][2])

    字典的方式
        emp_info={'name':'egon','age':18,"gender":'male','company_info':['Oldboy','SH',200]}

        print(emp_info['age'])
        print(emp_info['company_info'][0])

        names=['egon','alex','kevin']
        dic={'name1':'egon','name2':'alex','name3':'kevin'}


    五:布尔类型:True,Flase
        print(type(True))
        print(type(False))

        tag1=True
        tag2=True
        print(id(tag1))
        print(id(tag2))

        age=18
        print( age > 18)

    所有数据类型自带布尔值
    布尔值为假的数据类型:0,None,空
        print(bool([]))
        print(bool(''))
        print(bool(None))

    六 None
        print(type(None))

四、基本运算符
    01 比较运算符
        > >=
        < <=
        ==
        !=
        print(10 != 11)

        了解
        x=None
        print(x == None)
        print(x is None)

        l1=['abc',1,['a','b','c']]
        l2=['abc','aa',]
        print(l2 > l1)

    02 逻辑运算符
        and:连接左右两个条件,只有两个条件同时成立时and运算的结果为True
        print(10 > 9 and 3 > 2 and 'egon' == 'egon' and True)

        or:连接左右两个条件,两个条件成立任意一个or运算的结果就为True
        print(False or False or True or False or 3 > 10)

        res=(True or (False and True)) or ((False or True) and False)
        res=(True or False) or (True and False)
        res=True or False
        print(res)

        not
        print(not 10 > 3)

        x=None
        print(not x is None)
        print(x is not None)

        age1=18
        age2=19
        print(age2 is not age1)



        name_bk='egon'
        pwd_bak='123'
        name=input('please input your name: ')
        pwd=input('please input your password: ')
        if name == name_bk and pwd == pwd_bak:
            print('login successfull')
            print('login successfull')
            print('login successfull')
            print('login successfull')
            print('login successfull')
        else:
            print('username or password error')

 

posted on 2018-11-20 18:18  鲨鱼辣椒L  阅读(78)  评论(0编辑  收藏  举报

导航