基本数据类型
一、变量的内存管理机制
1、Cpython解释器有自身的垃圾回收机制。
什么是垃圾?
当一个值身上没有绑定任何变量名(也称为该值的引用计数=0)时,该值就是个age垃圾。
当一个值成为垃圾,解释器会对其进行垃圾回收,不会占用内存空间,也将找不到这个值。
什么是引用计数?
age=18 print(age)
此时,18这个值引用计数就为1
引用计数增加
age=18 #18的引用计数为1
x=age #18的引用计数为2
print(x)
此时,18这个值引用计数增加,变为2,
引用计数发生变化
age=18
x=age
age=19
此时,对age重新赋值为19,因此18这个值引用计数为1,19这个值引用计数为1。
引用计数减少
age=18 x=age age=19
del x 表示解除x与值的绑定关系,此时18的的引用计数减少为0
二、变量值
变量值的三个特征:
id:反应的是内存地址
type:指的是数据类型
值
id和值的关系:
id相同,值一定相同
值相同,id可以不同
== 与 is
== :表示值是否相等
is : 表示id是否相等
可变类型与不可变类型
可变类型:值改变,id不变,证明就是在改变原值
不可变类型:值改变,id也变。证明根本不是在改变原值,是创建了新值,原值就是不可变类型
三、python2中与用户交互
在python3中只有一个input
特点是用户输入的任意内容都会存成str类型
例如:salary=input(请输入您的月薪资:)
年薪Y: print(salary*12)
会得到 salary salary salary salary salary salary salary salary salary salary salary salary的值
输入内容默认存为str类型 str类型的值*12 相当于值复制了12次
在python2中有一个raw-input与python3中的input一样,这就要求客户必须输入一个明确的类型,输入什么的类型就存成什么类型,用户在使用过程中,造成了极大的不便。
四、数据类型的基本使用
1、整型 int
作用:是用来记录年龄、学号、手机号等一系列号码的状态
定义:
age=10 #本质 age=int(10)
使用:print(age+1)
2、浮点型 float
作用:用来记录身高、体重、薪资状态等非整数数字
定义:
salary=3.3 #本质 salary=float(3.3)
使用:print (3.3+3.1)
print (3.3 > 2)
print (3.3 < 5)
注:因此整型与浮点型是可以一起运算的
3、字符串类型
作用:用来记录描述性质状态,比如名字、性别、爱好等
定义:在单引号\双引号\三引号内,由一串字符组成
x= 'abc' # 实质是 x=str( ' abc ')
info=('zhangxin‘,’22‘)
使用: print('abc' + 'def ') #仅限于ste类型直接相加
print ('abc ' * 10) # * 的只能是数字
x=a y=b print (x > y ) flase
字符串之间也可比大小,与字符串长度无关,但只能字符串与字符串之间做比较
4、列表类型 list
作用:用来记录多个值,用索引对应值,索引反应的是位置
定义:在 [ ] 内用逗号分隔开任意类型的值
使用:
l =[ ' a ', ' b ',' 123 ', [ ‘ q ’,' w '] ] # 实质是 x = list......
print([ 0 ]) a [ ] 内索引的值从0起,0对应第一个值,1对应第二个.....
print([ 3 ][ 0 ]) q 列表内可包含子列表,子列表以同样的方式进行索引
5、字典类型 dict
作用:用来记录多个值,用key对应value,其中key对value具有描述性功能
定义:在{ } 内用逗号分隔开多个元素,每一个元素都是key:value的形式,其中value可以是任意类型,而key通常应该是str类型
d={'name':'zhangxin', 'age':22, 'gender':'famel',hobbies:['sleep','read'],‘m’:{'aaa':lll} }
{ } 内可包含子字典和列表
使用:
print(d['name'])
print(d['hobbise'][0])
print(d['m']['aaa'])
6、布尔类型 true false
使用:age=18
print(age>18) false
所有数据类型自带布尔值
#布尔值为假的数据类型:0,none,空
print(bool([ ]))
print(bool(' '))
print(bool(none))
7、None
print(type(None))
五、基本运算符
1、比较运算符
内容:
< < =
> >=
==
!=
使用:
print(10!=11) true
aaa=[ 'abc',1,'egon' ]
bbb=['abc', 'z','wer' ]
print (aaa>bbb)
无法运行此程序 只能同种类型的相比较 第一个相同依次往后比较 第二个非同种类型 因此无法进行
2、逻辑运算符
and:
连接在左右两个条件,只有两个条件同时成立时and运算的结果为true
使用:
print(9>8 and 8>5 and 3>2)
true
or:
连接左右两个条件,两个条件成立任意一个,or运算结果就为true
print(9>8 or false or 5>6 or 7>3)
ture
mes=(ture or (ture and false) or ((false or true )and false)
print(mes) ture
not:
print(not 10>6) false
x=None print(x is not None) false
   
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号