做一个技术girl

导航

三、内存管理、数据类型、基本运算符、流程控制

一、内存管理

1、Cpython解释器的垃圾回收机制

    什么是垃圾?

      当一个值身上没有绑定任何变量名(该值的引用计数=0)时,该值就是一个垃圾

    引用计数增加

      age=18   18的引用计数等于1

      x=age      18的引用计数等于2

    引用计数减少

      age=19    18的引用计数等于1

      del    x      18的引用计数等于0

2、变量值的三个特征

    id:反映的是内存地址

    type:数据类型

    值:表示事物的某种状态

  总结:id相同,值一定相同

            值相同,id可以不同

3、is 与 ==

    ==:值是否相等;

    is:id是否相等。

4、可变类型与不可变类型

    可变类型:值改变,id不变,证明就是在改变原值;

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

二、数据类型的基本使用

1、数字类型

    a、整型 int

         作用:用来记录年龄、等级、各种号码状态

         age=10   相当于   age=int(10)

    b、浮点型  float

         作用:用来记录身高、体重、工资状态

         定义:salary=3.1    相当于   salary=float(3.1)

2、字符串类型 str

    作用:用来记录描述性质状态,比如名字、性别

    定义:单引号(’‘),双引号(”“),三引号("""  """):可以写入多行内容

    x='abc'  相当于  x=str('abc')​

    print('abc'+'def')  ----->'abcdef'              #仅限于str类型直接相加

    print('abc' *3)​​  ----->'abcabcabc          #  *的只能是数字

3、列表类型list

    作用:​用来记录多个值,用索引对应值,索引反应的是位置

    定义:​在[]内用逗号分隔开多个任意类型的值

4、​字典dict

    作用:用来记录多个值,用key对应value,其中key对value有描述性的功能

    定义:在{}内,用逗号分隔开多元素,每一个元素都是key:value的形式​,其中value可以是任意类型,而key通常应该是str类型

5、布尔类型(bool):True   False

    所有数据类型自带布尔值

    布尔值为假的数据类型:0,   None,   空​。

    print(bool([]))、print(bool(’‘))​、print(bool(None) -----> False

6、None类型

    print(type(None))​------->None类型

三、​基本运算符

1、常量​

     ​纯大写字母命名常量名,如:AGE_OF_OLDBOY=18

     常量的值是可以改变的,如:AGE_OF_OLDBOY=19

2、基本运算符

    (1)、算术运算​

        +、-、*、/​

​        print(10/3)      精度float

        print(10//3)    取整

        print(10**2)​    平方

    (2)、逻辑运算​

        a、增量赋值

             age=18

             age+=1

             print(age)​

        b、交叉赋值

           x =10

            y=20  ​

           # temp=x,

            # x=y

            # y=temp​

            x,y=y,x​

            print(x,y)​

        ​​c、链式赋值 

             # x=10​

             # y=x

             # z=y​  ​

             x=y=z=10​

        d、解压赋值

             l=[1.1,2.2,3.3,4.4,5.5]​

             a,b,c,d,e=l​

             print( a,b,c,d,e)​

              a,b,*_=l                       #取前两个值

               print(a,b)

                a,*_,b=l                     #取第一个和最后一个值

                 print(a,b)​

                 *_,a,b=l                     #取最后两个值

                  print(a,b)​

四、流程控制​

1、if 判断​

    (1)if 条件:

                    代码1 

                    代码2

                     代码3

                      ......​

    (2)if 条件:

                    代码1 

                    代码2

                     代码3

                      ......​

              else:

                    代码1 

                    代码2

                     代码3

                      ......​

    (3)​if  条件1:

                    代码1 

                    代码2

                     代码3

                      ......​

          elif  条件2:

                    代码1 

                    代码2

                     代码3

                      ......​

       elif  条件3:

                    代码1 

                    代码2

                     代码3

                      ......​

              else:

                    代码1 

                    代码2

                     代码3

                      ......​

 2、while循环:条件循环

        while条件:

                   代码1

                    代码2​

                    代码3

                    .........​

    结束循环的方式​

        (1)while+break:break代表结束本层循环​

        (2)改条件的方式tag=True​

                while tag:

                         代码块

                          tag=False​

                          break

eg:​​

                tag=True

​                 while tag:

                         i = 0

​                         while i<<span se-mark="1">3: 

                                 inp = input('请输入年龄>>>') 

                                 i = i + 1

​                                 if inp =='10': 

                                 print('恭喜您猜对了') 

                                 tag=False 

                                 break 

                         else: 

                                 inp1=input('还想继续玩吗?y?>>') 

                                 if inp1=='y': 

                                 continue

        (3)while+continue:     continue​​表示结束本次循环,直接进入下一次

  while+else​结合

  while 条件:

             pass

    else​:

             print(‘else子代码块只有在while循环没有被break打断的情况下才会执行’)​

  3、for循环

         l=['a','b','c']

         for i in l:

                 print(i)

         dic={'x':111,'y':222,'z':333}

         for j in dic:

        print(j,dic[j])

       while循环称之为条件循环,循环的次数取决于条件何时为False,它的取值依赖于索引

       l=['a','b','c']

       i=0

       while i

       print(i,l[i])

       i+=1

       for循环取值不依赖于索引,像无序的数据类型如对字典取值很方便,循环的次数取

决于数据包含的元素的个数

      专门用来取值,在取值方面比while循环更强大,以后但凡用到循环取值的场景,都应

该用for循环

      range:    python2以列表形式表现,很消耗内存,相当于给一篮子鸡蛋

                    python3中相当于给一只鸡

     for i in range(3):   取0、1、2的值

    print(i)

  

for+break

eg:

names=['egon','kevin','alex','hulaoshi']

name in names:

          if nfor ame=='alex':break

          print(name)           #结果egon,kevin

for+continue

eg:

  names=['egon','kevin','alex','hulaoshi']

  for name in names:

  if name=='alex':continue

  print(name)           #结果egon,kevin,hulaoshi

for+else :  

          else子代码块只有在for循环没有被break打断的情况下才会执行’

for循环嵌套​

换行符:

  print('aaa',end='\n')换行

  print('aaa',end='')

  print('bbb',end='')取消换行

posted on 2018-11-21 11:36  戚戚~  阅读(102)  评论(0编辑  收藏  举报