python全栈_004_Python3基本数据类型

Posted ixuby

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python全栈_004_Python3基本数据类型相关的知识,希望对你有一定的参考价值。

1:什么是可变数据类型和不可变数据类型:

  可变数据类型:value值改变,id值不变(即变量的内存地址不改变),即修改变量的值还在原来的内存中修改,不用重新创建一个对象,分配一块内存;

  不可变数据类型:value值改变,id值也随之改变(即变量的内存地址也改变),即原来内存中的值不能修改,修改变量的值,不会在原来的内存中修改,会重新创建一个对象,分配一块内存;

  怎么判断是否可变???  是否可变,看能否在原来中的内存中修改,能修改就是可变数据类型,不能修改就是不可变数据类型。

       判断方法:改变变量的值,看变量的内存地址值是否改变(使用id()函数查看):
    a:如果变量的内存不变,那么就是可变数据类型;(可以在原来的内存中修改)
    b:如果变量的内存改变,那么就是不可变数据类型;(不能在原来中的内存中修改,意味着改变变量的值会重新创建对象,分配内存)

  

    如下图:int类型是不可变数据类型;

    技术分享图片

2:常见的基本数据类型:

  1. int 整数
  2. bool 布尔. 判断. if while
  3. str 字符串, 一般放小量的数据.
  4. list 列表. 可以存放大量的数据
  5. dict 字典, 以key:value的形式存储数据
  6. set 集合(数学)
  7. tuple 元组 不可变

 

2.1:int类型:


整数: 常见操作就那么几个 +-*/ // % **
bit_length() 一个数的二进制长度
(后面专门介绍)

 

2.2:bool类型:

  没有操作
  类型转换
  字符串转换成整数 int(str)

  结论1: 想要转化成什么类型就用这个类型括起来
  结论2: True => 1 False => 0
  结论3: 可以当做False来用的数据: 0 "" [] {} () None

 (其他的后面介绍)

3:类型转换:

# 把字符串转换为int
print(1:把字符串转换为int)
a = 10
print(a, type(a), id(a))
b = int(a)
print(b, type(b), id(b))

# 把int转化成字符串
print(2:把int转化成字符串)
a = 10
print(a, type(a), id(a))
b = str(a)
print(b, type(b), id(b))

# 如果想把字符串转化成int    int(str)
# 把int转化成str    str(int)
# 结论: 想转化成xxx数据类型    xxx(目标)

# 把int转换为bool
print(3:把int转换为bool)
a = 10
print(a, type(a))
b = bool(a)
print(b, type(b))

# 把bool转换为str
print(4:把bool转换为str)
c = True
print(c, type(c))
d = str(c)
print(d, type(d))

# 把bool转换为int
print(5:把bool转换为int)
a = False
print(a, type(a))
b = int(a)
print(b, type(b))

# 结论2: True => 1  False => 0
# 结论3 , 可以当做False来用的数据: 0, "", [], (),{}, None
# 所有的空的东西都是False

print(6:可以当做False来用的数据)
print(0, "", [], (), {}, None)
print(bool(0), bool(""), bool([]), bool(()), bool({}), bool(None))
print(id(0), id(""), id([]), id(()), id({}), id(None), id(False))
# 虽然都可以当做False,但是各个数据的内存地址是不一样的
# 所以不能说  0 is False,0 is None,"" is None ,[] is None等;在判断某个对象是否为空的时候需要注意!!!


s = ""
if s:
    print("娃哈哈") #不会输出

if s is None:  # 不能这么判断是否为空
    print(s is None)
else:
    print(s is not None)  # 输出此

lst = []
if lst is None:      # 不能这么判断是否为空,is 比较的是其地址
    print(lst is None)
else:
    print(lst is not None)  # 输出此

if 0 is False: # 不能这么判断
    print(0 is False)
else:
    print(0 is not False) # 输出此

if 0 == False:
    print(0 == False)   # 输出此,比较时会对False进行类型转换,int(False) 结果为0 
else:
    print(0 != False)

s = ‘‘
if 0 == s:
    print(0 == s)
else:
    print(0 != s)  # 输出此

 
















以上是关于python全栈_004_Python3基本数据类型的主要内容,如果未能解决你的问题,请参考以下文章

python全栈_009_Python3基本数据类型--列表

python3全栈开发-内置函数补充,反射,元类,__str__,__del__,exec,type,__call__方法

Python3+ Django2.7开发web排坑记004_restfulframework 实现前后端分离

python全栈开发基础补充metaclass(元类)

Python全栈开发——描述符

Python全栈__字典及其操作