zoukankan      html  css  js  c++  java
  • Python入门-变量 + Python的内存管理+ Python的基本数据类型和内置方法

    一、变量

    1、什么是变量?

      变:现实世界中的状态是会发生改变的。

      量:衡量/记录现实世界中的状态。让计算机能够像人一样识别世间万物!  

    2、为什么要有变量?

      程序的运行本质就是一些列状态的变化。

    3、如何用变量?

      定义变量:

    # 定义变量:(变量名 赋值符号 变量值)
    name = 'zhangrenguo'
    age = 18
    # 变量名:是用来引用变量值的,即但凡要用变量值都需要通过变量名。
    # 赋值符号:
    # 变量值:即我们存放的数据,是用来衡量/记录世间万物的状态的。
    变量名的定义规范:
    1、变量名的定义应该能反映变量值所记录的状态,不要用中文的变量名。
    2、变量名只能是字母、数字、下划线任意组合而成。
    3、变量名的第一个字符不能是数字。
    4、关键字不能声明为变量名。
    Python变量名的定义规范
    变量名定义的两种风格:
    1、下划线(针对变量名的定义风格推荐使用下划线):age_of_user = 26
    2、驼峰体:AgeOfUser = 26
    变量名定义的两种风格
    # 常量
    强调:在Python中没有从语法意义上去强制定义常量。
    如果需要定义常量,应该讲变量名全部改为大写。
    常量

    二、python的内存管理

    # Python的自动垃圾回收机制:一个值的引用计数为0
    
    x=10
    y=x
    x=11
    print(x)
    # 11
    print(y)
    # 10
    del y  #解除绑定
    
    # Python的内置功能:id()用来查看变量在内存的id号,id用来反映变量值在内存中的位置的,内存地址不同则id不同。
    # python的优化:短时间内用且数据值不大。但是随着值变长在Python2当中
    
    x1 = "info:<name:zrg age:26>"
    y1 = "info:<name:zrg age:26>"
    
    print(id(x1))
    print(id(y1))
    #1 等号比较的是value,
    #2 is比较的是id
    
    #强调:
    #1. id相同,意味着type和value必定相同
    #2. value相同type肯定相同,但id可能不同,如下
    >>> x='Info Egon:18'
    >>> y='Info Egon:18'
    >>> id(x)
    4376607152
    >>> id(y)
    4376607408
    >>> 
    >>> x == y
    True
    >>> x is y
    False

     

     

    三、基本数据类型

    1、什么是数据类型?
    
        什么是数据?变量值才是我们存储的数据。所以数据类型指的就是变量值的不同种类。
    
    2、为何数据要分类型?
    
      变量值是用来保存世间万物不同状态的,针对不同状态就应该用不同的数据类型来表示。
    
    3、如何用,即数据类型的分类

    1、整型int: 

    作用:

    定义:

    如何用:

     

     

     

     

     

     

     

     

     

     

    列表 list 

      list是个类,通过list创建对象,列表的特征:中括号括起来,逗号分隔每个元素。元素可以是数字,字符串,列表,字典,集合,元组,布尔值...所有的都能放进去。

      

      通过索引取值

      通过切片取值,取到的子元素也是个列表

      支持for循环

      支持while循环

      列表创建出来列表元素支持被修改。

      删除方法之一:del 

      删除方法之二:pop()删除的值可以获取到,默认删除最后一个值,可指定某个索引删除获取

      删除方法之三:remove()删除列表的值,最左优先

         支持成员运算 in not in 

      

      转换 字符串转换为列表,内部使用否循环

            列表转换为字符串,需要自己写for循环一个一个处理,既有数字又有字符串。

      直接用join方法前提是列表中的元素只有字符串。

     

      list类中提供的方法:对象可以调用

      append()追加到最后。

      append()

      clear()清空

      copy()浅拷贝

      count()计算元素出现的次数

      extend(可迭代对象)扩展原来的列表

      index()根据值查找索引只找到第一个值,可指定查找的起始位置

      insert(哪个位置,值)在指定索引位置插入元素

      pop()删除的值可以获取到,默认删除最后一个值,可指定某个索引删除获取

      remove()删除列表的值,最左优先

      sort(reverse=true)排序,从大到小排,从小到大排

      cmp

      key

      sorted

      

      

     

    像字符串类型一样,列表类型也是序列式的数据类型,可以通过下标或者切片操作来访问某一个或者某一块连续的元素。然而,相同的方面也就这些,字符串只能由字符组成,而且是不可变的(不能单独改变它的某个值),而列表则是能保留任意数目的Python对象的灵活的容器。就像我们将要看到的列子中所示,创建列表非常简单,向列表

     

     

     

     元组 tuple 是对列表的二次加工,元素不可被修改,不能被增加或者删除。  

      括号括起来,最后多加一个逗号

      

      通过索引取值

      通过切片取值

      for循环

      while循环

      

      转换:

      字符串转换为元组  

      列表转换成元组

      元组转换为列表

      元组转换为字符串

     

      元组也是有序的,元组的一级元素不可修改

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    数据类型+内置方法

    1什么是数据

    2为什么要存数据?数据为什么要分类

    3数据类型

     

    1什么是数据

    X=10  10就是我们要存的数据

    2为什么要存数据?数据为什么要分类

    数据是用来表示事物状态的,不用的事物状态需要用不同类型的数据来表示

    3数据类型

    整型、浮点型、字符串型、列表型、字典型、布尔型

     

     

    整型int

     

    作用:用来表示年龄、分数、等级、、、、

     

    定义:age=18   age=int18

     

    常规操作:算数运算,比较运算

     

    该类型总结:

     

    只能存一个值

     

    没有有序和无序的说法

     

    是不可变类型数据

     

     

    浮点型float

     

    作用:用来表示薪资、身高、体重、、、、

     

    定义:

     

    Salary=3.1    salary=float3.1

     

    常规操作:

     

    算术运算,比较运算

     

    该类型总结:

     

    只能存一个值

     

    没有有序和无序的说法

     

    是不可变类型数据

     

     

     

    字符串类型 str

     

    作用:用来描述姓名、国籍、地址、

     

    定义:在单引号,双引号或者三引号内的一串字符

     

    name=’egon’ 

     

    常规操作:

     

    优先掌握的操作

     

    1. 按索引取值(正向取+反向取):只能取

      name= “egon”     索引以0开始

      Print(name[1])

      Print(name[-1])

    2. 切片(顾头不顾尾,步长)[:]

      name=egon

      Printname[0:2]

      Printname[:2]

      Printname[1:]

      Printname[:]

      用一个冒号隔开两个索引值,左边是开始位置,右边是结束位置。结束位置上的字符是不包含的。

      如果没有开始位置,python会默认开始位置是0,如果没有放入任何索引值,而只有一个冒号,就会得到整个字符串里的字符。

      msg=hello world

      msg[1:5;2] = ello eo

      倒向切片

    print(name[::-1])

    msg='hello world'

    print(msg[:-6:-1])

    dlrow

    print(msg[:-6:-2])

    drw

    1. 长度len

    msg='hello world'

    print(len(msg))

    11

    1. 成员运算innot in

      子字符in 大字符串

    msg='hello world'

    print('h'in msg)

    True

     j not in  和  not j in 是一个意思

    1. 移除空白strip     删除字符串左右两边所有的空格

    name = '     e gon      '

    print(name.strip())

    e gon

    变量名.strip(‘-’)  ‘-”可以是任意字符

    Lestrip(‘ ’)  去掉字符左边所有空格

    Restrip(‘ ’)  去掉字符右边所有空格

    1. 切分split.()

       

    msg='my name is egon'

    x=msg.split(' ')  print(msg.split(' '))

    print(x)

    结果['my', 'name', 'is', 'egon']

    默认以空格为分隔符切片字符串,然后拼接成列表,也可以用在字符串里的字符为分隔符

    print(msg.split('e'))

    结果:['my nam', ' is ', 'gon']

    也可以来选择从左到右切几次

    print(msg.split(' ',2))

    结果:['my', 'name', 'is egon']

    7、循环

    msg='my name is egon'

    for i in msg:

    print(i)

    需要掌握的操作

    1. Strip 删除字符串左右两边所有的空格

      lestrip删除字符串左边所有的空格

    name='*******%%%egon $$$$$$$'

    print(name.lstrip('*'))

    结果:%%%egon $$$$$$$

    restrip删除字符串右边所有的空格

    name='*******%%%egon $$$$$$$'

    print(name.rstrip('$'))

    结果:*******%%%egon

    1. Lower:转换字符串中所有大写字符为小写

    msg= 'I love MY GirlFriend'

    print(msg.lower())

    结果:i love my girlfriend

    1. Upper:转换字符串中所有小写字符为大写

    print(msg.upper())

    结果:I LOVE MY GIRLFRIEND

    4

    startswith

    startswith:print('my name is egon'.startswith('my'))

    Endstartwith

    Endswith:print('my name is egon'.endswith('n'))

    5

    formate的三种用法:

    Formate()方法接受位置参数和关键字参数,二者均传递到一个叫做replacement字段。而这个replacement字段在字符串内有大括号{}表示。

    字符串中的{0}{1}{2}依次被formate()中的三个参数替换。

    msg='{0} love {1}一生一世 {2}'.format('i','you','哈哈')

    print(msg)

    结果:i love you一生一世 哈哈

     

    {a}{b}就相当于三个标签,formate()讲参数中等值的字符串替换进去

    info='my name is {a} and my age is {b}'.format(a='egon',b=18)

    print(info)

    结果:my name is egon and my age is 18
    msg='{} love {}一生一世 {}'.format('i','you','哈哈')

    print(msg)

    结果:i love you一生一世 哈哈

     

    6Split 拆分

    info = 'egon:18:male'

    print(info.split(':'))    print(info.split(':',1))

    结果:['egon', '18', 'male']            结果:['egon', '18:male']

    Resplit  从右往左拆分

    print(info.rsplit(':',1))

    结果:['egon:18', 'male']

    1. Join

    info = 'egon:18:male'
    i=info.split(':')
    new_info=':'.join(i)
    print(new_info)

     

       

     

    print('.'.join(['egon','say','hello']))

                                                                                                              

    1. Replace

      msg='my name is wupeiqi'
    print(msg.replace('wupeiqi','pig',1))

    1. Isdigit

    msg='11111111111'

    print(msg.isdigit())

     

     

     

     

     

     

     

     

    列表list

    作用:

    用来存放多个值,多个爱好,多个人名

     

    定义:定义在[]中括号内,用逗号分隔开多个值,值可以是任意类型

     

    stu_names=[‘egon’,’alex’,’wsb’,’ksb’]

    基本操作:

    1. 按索引存取值(正向+反向存取):即可存也可取

    stu_names=['egon','alex','wsb','ksb',]
    print(stu_names[1])

    stu_names=['egon','alex','wsb','ksb',]
    print(stu_names[-1])

     

    1. 切片(顾头不顾尾,步长)

    stu_names=['egon','alex','wsb','ksb',]
    print(stu_names[:3])

    stu_names=['egon','alex','wsb','ksb',]
    print(stu_names[:3:2])

     

     

    1. 长度len

    stu_names=['egon','alex','wsb','ksb',]
    print(len(stu_names))

     

    1. 成员运算in not in

    stu_names=['egon','alex','wsb','ksb',]
    print('egon'in stu_names)

     

    1. 追加append

    stu_names=['egon','alex','wsb','ksb',]
    stu_names.append('zrg')
    print(stu_names)

     

    1. 删除del

    stu_names=['egon','alex','wsb','ksb',]
    del stu_names[2]
    print(stu_names)

    1. 循环

    stu_names=['egon','alex','wsb','ksb',]
    for i in stu_names:
        print(i)

     

    1. Insert(随意位置添加)

    names=['egon','alex','wsb','ksb',]
    names.insert(2,'sb')
    print(names)

     

    Remove(按元素的值删除,没有返回值

    names=['egon','alex','wsb','ksb',]
    names.remove('egon')
    print(names)

     

    Pop(按索引删除,有返回值)

    names=['egon','alex','wsb','ksb',]
    names.pop(0)
    print(names)

     

    Count(统计有几个)

    names=['egon','alex','wsb','ksb',]
    print(names.count('alex'))

     

    Clear(清空)

    names=['egon','alex','wsb','ksb',]
    names.clear()
    print(names)

     

    Index(查索引)

    names=['egon','alex','wsb','ksb',]
    print(names.index('alex'))

     

    Copy

    names=['egon','alex','wsb','ksb',]
    x=names.copy()
    print(x)

     

    Extend

    names=['egon','alex','wsb','ksb',]
    names.extend(['1','0','8'])
    print(names)

     

    Revers倒序

    names=['egon','alex','wsb','ksb',]
    names.reverse()
    print(names)

     

    Sort 排序

    info = [9,67,34,99,3,-6]
    info.sort()
    print(info)

     

     

  • 相关阅读:
    关于window7下的apache+php+mysql的配置
    pysam
    pysam读取bam files[转载]
    曼哈顿图[转载]
    关于在shell中直接修改文件名
    Linux怎样将文本行倒序排列
    用Annovar注释非人类基因组,如小鼠mm9
    shell中的##*,%%*问题
    BEAMing技术
    Annovar注释说明【转载自http://blog.csdn.net/u013816205/article/details/51262289】
  • 原文地址:https://www.cnblogs.com/zhangrenguo/p/9114634.html
Copyright © 2011-2022 走看看