内存管理,数据类型的基本使用与基本运算符(python2中与用户交互)

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

引用计数增加

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

引用计数减少

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

del   x  #18的引用计数等于0

2.变量值的三个特征:

id: 反映的是内存地址

type: 数据类型

age=18

print(id(age))

print(type(age))

print(age)

总结:

  id相同,值一定相同

  值相同,id可以不同

3. is 与 ==

== : 值是否相同

is : id是否相同

4. 可变与不可变类型

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

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

***************************************************************************************************************

1.python2中与用户交互

在Python3中只有input
特点: 会用户输入的任意内容都存成str类型

2. 在python 中只有一个raw_input,与python3的input一模一样

但要求用户必须输入一个明确的类型,输入什么类型就存成什么类型

************************************************************************************************************

数据类型的基本使用

一: 数字类型

整型 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])

五: 布尔类型:  True ,Flase

所有数据类型自带布尔值

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

六: None

print(type(None))

***************************************************************************************************

基本运算符
一. 比较运算符

>   >=

<   <=

==

!=

了解

x=None

print(x==None)      True

print(x is None)      True

二: 逻辑运算符

and: 连接左右两个条件,只有两个条件同时成立时and运算的结果为True

or : 连接左右两个条件,两个条件成立任意一个or运算的结果为True

not: 取相反的意思

原文地址:https://www.cnblogs.com/huangchaonan/p/9983647.html

时间: 2024-11-09 12:17:28

内存管理,数据类型的基本使用与基本运算符(python2中与用户交互)的相关文章

内存管理以及数据类型

一.内存管理 1.Cpython解释器的垃圾回收机制 什么是垃圾:当一个值身上没有人绑定任何变量名(该值的引用计数=0)时,该值就是一个垃圾. Cpython解释器就会自动回收这样的垃圾. #引用计数增加 #age=18 # 18的引用计数=1 #x=age   #  18的引用计数=2 #引用计数减少 #age=19 # 18的引用计数=1 #del x     #  18的引用计数=0 2.变量值的三个特征: id:反映的内存地址  # age=18 type::数据类型       # p

内存管理高级

内存管理高级 内存管理高级: 1.属性的内部实现原理 2.dealloc内释放实例变量 3.便利构造器方法的实现原理 4.collection的内存管理 name, age, gender 自定义初始化方法 便利构造器 Student.h #import <Foundation/Foundation.h> @interface Student : NSObject <NSCopying> //重在对象, 使用retain; 重在内容, 使用copy @property (nonat

内存管理总结

@property内存管理策略的选择1.非ARC1> copy : 只用于NSString\block2> retain : 除NSString\block以外的OC对象3> assign : 基本数据类型.枚举.结构体(非OC对象),当2个对象相互引用,一端用retain,一端用assign2.ARC1> copy : 只用于NSString\block2> strong : 除NSString\block以外的OC对象3> weak : 当2个对象相互引用,一端用s

IOS内存管理retain,assign,copy,strong,weak

IOS内存管理retain,assign,copy,strong,weak IOS的对象都继承于NSObject, 该对象有一个方法:retainCount ,内存引用计数. 引用计数在很多技术都用到: window下的COM组件,多线程的信号量,读写锁,思想都一样. (一般情况下: 后面会讨论例外情况)alloc 对象分配后引用计数为1retain 对象的引用计数+1copy copy 一个对象变成新的对象(新内存地址) 引用计数为1 原来对象计数不变 release 对象引用计数-1 如果为

Theano教程:Python的内存管理

在写大型程序时候的一大挑战是如何保证最少的内存使用率.但是在Python中的内存管理是比较简单的.Python显示分配内存,使用引用计数系统管理对象,当指向某一个对象的引用数变为 0 的时候,该对象所占的内存就会被释放.理论上听起来很不错,也很简单,但是在实践中,我们需要知道一些Python内存管理的知识从而让程序在运行过程中能够更加高效地使用内存.其中一个方面我们需要知道的是基本的Python对象所占空间的大小,另一方面我们需要知道的是Python在内部到底是如何管理内存的. 基本对象 一个

cocos2dx[3.2](24)——内存管理机制

[参考] http://zh.wikipedia.org/wiki/引用计数 (引用计数--维基百科) http://cn.cocos2d-x.org/tutorial/show?id=2300 (引用计数和自动释放池) http://cn.cocos2d-x.org/tutorial/show?id=1331 (内存管理--绕不过去的坎) http://blog.csdn.net/legendof1991/article/details/23360131 (内存优化) https://gith

object-C 手动内存管理(MRC)

object-C的内存管理和javascript的垃圾回收不一样,今天总结下手动内存管理,ARC的后边补上. 1:基本铺垫 oc采用引用计数来表示对象的状态,比如通过init创建出来的一个对象引用计数为1,如果想让它释放则对这个对象发送一条release消息,则引用计数-1,那怎么+1呢,给这个对象发送retain消息. 对象操作 Object-C方法 生成并持有对象 alloc/new/copy/mutableCopy方法 持有对象 retain方法 释放对象 release方法 废弃对象 d

Unity游戏开发中的内存管理_资料

内存是手游的硬伤——Unity游戏Mono内存管理及泄漏http://wetest.qq.com/lab/view/135.html 深入浅出再谈Unity内存泄漏http://wetest.qq.com/lab/view/150.html 这一次,我优化了37%的内存http://wetest.qq.com/lab/view/147.html Unity项目资源加载与管理http://wetest.qq.com/lab/view/124.html Android应用内存泄露分析.改善经验总结h

RT-thread内核之小内存管理算法

 一.动态内存管理 动态内存管理是一个真实的堆(Heap)内存管理模块,可以在当前资源满足的情况下,根据用户的需求分配任意大小的内存块.而当用户不需要再使用这些内存块时,又可以释放回堆中供其他应用分配使用.RT-Thread系统为了满足不同的需求,提供了两套不同的动态内存管理算法,分别是小内存管理算法和SLAB内存管理算法.小堆内存管理模块主要针对系统资源比较少,一般用于小于2M内存空间的系统:而SLAB内存管理模块则主要是在系统资源比较丰富时,提供了一种近似多内存池管理算法的快速算法. 两种内