Python--基本数据类型(可变/不可变类型)

Python--基本数据类型

image

赋值格式:

  • 变量名 赋值符号 值

查看数据类型的方法:

  • type( )

1、整型 int

整型一般用于存储整数等

#int实例
age = 18
num = 100
···


2、浮点型 float

浮点型一般用于存储小数等

#float实例
NUM = 3.14
num = 1.456789
···

注·整型和浮点型可以叫做数字类型,主要用于数学运算、类型转换等


3、字符串 str

字符串格式

字符串主要用于记录描述性性质的数据

定义:字符串需要用引号括起来,单引号,双引号,三引号(没有赋值符号的三引号为注释)

字符串定义格式:
#空字符串
s1 = ''
#非空字符串
方式一: #单引号
num = 'one two three'

方式二:  #双引号
num = "one two three"

方式三:  #三引号:三个单引号
num = '''one  two  three'''
或
num = """one two three"""


字符串嵌套

为什么会有单引号双引号或者三引号,这么多种类,在字符串内,如果需要多次使用引号需要注意,引号的开始和结束的位置,例子如下:

#错误示范
word = '老师说:'学会python就能拿高薪。''

图示如下:

image


image


这样python解释器会认为字符串只有’老师说‘和后面的空字符串’ ‘。


#正确示范,引号嵌套
word = '老师说:"学会python就能拿高薪。"'
word1 = "老师说:'学会python就能拿高薪。'"

image

image

这样就没有问题了,注意引号的前后位置哦!

4、列表 list

  • 列表用来存储多个数据并且可以方便取出任意个数。

  • 取元素的方法:索引、切片

定义:列表是用中括号括起来,内部可以存放多个元素,元素与元素之间用逗号隔开,元素类型可以为任意数据类型。

列表定义格式:
#空列表
lst1 = []

#非空列表
lst2 = [1,2,3,'python']
lst3 = [1,2,3,'python',['java','php','c++']]

列表元素的下标位置

image

索引和切片:字符串,列表常用

列表举例子,索引取值,实例如下:

索引有两种方式:正索引、负索引
根据元素的位置来决定用那种方法,在列表前端用正索引,末尾用负索引


# 索引取值,取python
lst2 = [1, 2, 3, 'python']
print(lst2[3])	#正
print(lst2[-1])	  #负
# 嵌套取值,取出java
lst3 = [1, 2, 3, 'python', ['java', 'php', 'c++']]
print(lst3[4][0])
print(lst3[-1][0])

image

image


切片取值的原理是左闭右开,不包含最后一位,切片取值实例如下:

#取出数字类型的元素,123,456,789
lst4 = [123,456,789,'name','age','hobby']
print(lst4[0:3]) #不包含第四个元素,所以取到第三个789

image

image


5、字典 dict

字典能够更加精确的存储数据,以键值对的形式存在

定义:字典是用大括号/花括号括起来,可以存放多个元素,元素与元素之间用逗隔开,对应的格式是KV键值对,{k:v}。

  • 说明:
    • K是对V的描述性性质的信息(一般情况下都是字符串)
    • V是真正的数据,相当于变量的值,可以是任意数据类型
# 字典实例:
#空字典
dic = {}
#非空字典
dic1 = {'name': 'HammerZe', 'age': 18, 'hobby': 'girl'}
#字典无法使用索引取值,只能通过K取值
print(dic['name'])

image

6、布尔型 boll

布尔值是用于判断事物的对错,只有两种状态,True,False

特别注意!布尔值的变量名一般采用 is开头定义!

实例如下:

is_right = True
is_delete = False
is_alive = True

  • 数据类型转换

    在python中所有的数据类型都可以转换为布 尔值
    布尔值为False的有:
    0,None,'',[],{}····,其他情况一律为True

7、元组 tuple

元组与列表几乎相同,但是是不可变的,列表里的元素是可变的

定义:用小括号括起来,可以存放多个元素,元素之间用逗号隔开,元素不支持修改

#实例如下:
#空元组
tup = ()
print(type(tup))
#非空元组
tup1 = (1, 2, 3, 4, 5, 6,)
print(type(tup1))
tup2 = (1, 2, 3, 4, 5, 6)
print(tup1 == tup2) #结果为True,后面多一个逗号也是可以的

image


8 、集合 set

集合可以去重和关系运算

定义:用大括号/花括号括起来,可以存放多个元素,元素和元素之间用逗号隔开,只能存储不可变类型,和字典区别开。

#实例如下
#空集合
s = set()
print(type(s))
# 非空集合
s1 = {1, 2, 3, 4, 5, 6, 7}
print(s1,type(s1))

image


python中不可变数据类型和可变数据类型

查看内存地址的方法:id( )

如何区分可变与不可变

不可变数据类型更改后地址发生改变,可变数据类型更改地址不发生改变

  • 不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
  • 可变数据类型 :当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。

用一张表来说明:

数据类型 可变/不可变
整型 不可变
字符串 不可变
元组 不可变
列表 可变
集合 可变
字典 可变

实例如下:

查看源图像

#分别取可变和不可变的一种来举例子:
#整型
a = 1
print(id(a),type(a))
a = 2
print(id(a),type(a))

#结果
1354793072 <class 'int'>
1354793104 <class 'int'>

#内存地址发生了改变,所以是不可变类型

#列表:
lst = [1, 2, 3, 4, 5]
print(lst, id(lst), type(lst))
lst[0] = 'one'
print(lst, id(lst), type(lst))

#结果:
[1, 2, 3, 4, 5] 2616978892744 <class 'list'>
['one', 2, 3, 4, 5] 2616978892744 <class 'list'>
#内存地址没有发生改变,所以是可变类型

看完例子是不是明白了可变与不可变的原理了!


image

posted @ 2021-11-03 17:07  HammerZe  阅读(917)  评论(0编辑  收藏  举报