菜鸟学Python第三天

内存管理

C python解释器的垃圾回收机制

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

引用计数增加

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

引用计数减少"del x"解除变量名和值的绑定,减少计数,然后由Python机制回收

变量值的三个特征

  • id : 反映的是内存地址

  • type : 数据类型

  • 值 : 值本身

    总结
    1. id相同,值一定相同

    1. 值相同,id可以不同

    2. is 与 ==的区别

    • == :值是否相等

    • is : id是否相等

    1. 可变类型和不可变类型:判断可不可变,主要是判断id是否改变。

    • 可变类型:值改变,id不可变

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


Python 2中与用户交互(了解)

    1. 在Python 3中只有一个input

      特点:会将用户输入的任意类型都存成str类型

    1. 在Python 2中只有一个raw_input,与Python 3的input一模一样

    x = raw_input('>>>:')

    python 2 中的 input 要求用户输入明确的类型,输入什么类型就存为什么类型。

    >>> x = input('x:')
    x:123
    >>> x
    123
    >>> type(x)
    <type 'int'>

 

数据类型的基本使用

1. 整型:int

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

  • 定义:

age = 10
  • 使用:略

2.浮点型:float

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

  • 定义:

height = 1.83
  • 使用:略

3.字符串:str

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

  • 定义:在单引号('')、双引号(" ")、三引号(''' ''', """ """)内包含一系列字符。

    • 三种不同引号的区别:

        1. 单引号和双引号基本无区别,都是用来存放单个字符串,但要注意的是要保证前后的一致性

        2. 三引号多用来存放多行字符串

        3. 字符串的嵌套时,要保证内外引号的差异性,否则就会报错

x = 'abc' # 等同于x = "abc"
​
y = """
abc
123
hahaha
"""
​
msg = 'my name is "Jason"'
  • 使用:

    1. 字符串的加法运算(仅限于字符串同类型相加)

    2. 字符串的乘法(相乘的对象必须是int类型)

    3. 字符串之间的大小比较

4.列表:list

作用:用来存取多个值,用索引对应值,索引反映的是位置

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

>>> l = [1, 0.1, 'Jason', ['a', 'b', 'c']]
>>> print(type(l))
<type'list'>

使用:列表的取值及嵌套取值

5.字典:dict

作用:用来存放多个值,用key对应value,其中key对value有描述性作用

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

>>> s = {'name':'Jason','age':'23','hobby':'basketball'}

用法:按照key取value

>>> s = {'name':'Jason','age':'23','hobby':'basketball'}
>>> print(s['age'])
23

6.布尔类型:bool

作用:用来控制程序的走向

定义:布尔类型只有两种,True/false;

与之前的类型不同,基本不需要提前定义

用法:通常用在循环或判断语句中,控制程序流程的走向

所有数据类型自带布尔值,除0,None,空(任何为空的数据类型)的布尔类型为False外,其他数据类型的布尔值皆为True。

7.None

>>> print(type(None))
<class 'NoneType'>

 


基本运算符

1. 比较运算符

比较运算符包含:">", ">=", "<", "<=", "==", "!="

用法:通常用于循环或判断语句中,输出值为布尔类型。

2. 逻辑运算符

  • and:连接左右两个条件,只有在两个条件同时成立时,输出结果才为真

  • or:连接左右两个条件,只要有其中一个条件成立时,输出结果就位真

  • not:非

注:当统一语句中存在两个以上条件时,用括号标明优先级可增加代码可读性

 

猜你喜欢

转载自www.cnblogs.com/liusijun113/p/9983992.html
今日推荐