Python(三):变量与数据类型

Python(三):变量与数据类型变量与数据类型 1 概述 2 变量 3 数据类型 3 1 数值类型 3 2 字符串类型 3 3 序列类型 3 3 1 列表类型 3 3 2 元组 3 3 3 range3 4 映射类型 3 5 集合类型 3 6 布尔类型 3 7 二进制类型 3 7 1 bytes

大家好,欢迎来到IT知识分享网。

变量与数据类型

  • 1 概述
  • 2 变量
  • 3 数据类型
    • 3.1 数值类型
    • 3.2 字符串类型
    • 3.3 序列类型
      • 3.3.1 列表类型
      • 3.3.2 元组
      • 3.3.3 range
    • 3.4 映射类型
    • 3.5 集合类型
    • 3.6 布尔类型
    • 3.7 二进制类型
      • 3.7.1 bytes(字节串)
      • 3.7.2 bytearray(字节数组)
      • 3.7.3 memoryview(内存视图)
    • 3.8 NoneType类型
  • 4 总结

大家好,我是欧阳方超,公众号同名。

Python(三):变量与数据类型

1 概述

介绍变量与基本数据类型,包括变量的动态类型特性、数值类型、字符串类型、序列类型(列表、元组、range)、映射类型(字典)、集合类型(set、frozenset)、布尔类型以及二进制类型(bytes、bytearray、memoryview)。同时结合简单示例,说明了NoneType类型的特点和典型用法。

2 变量

Python中变量不需要声明,也没提供声明变量的语法,变量在首次向它赋值时会被创建。

a = 10 

在为变量赋值时,也不用声明变量的类型,甚至在为某个变量赋值后,还可以将其他类型的数据再次赋值给这个变量,因此Python是一种动态类型的语言,它的变量本身不绑定固定的数据类型。

b = 10 b = "Peter" 

Python中一切皆对象,因此变量指向的是内存中的某个对象,而这个对象才有类型。

a = 90 b = a # id()函数可以查看对象标识 print(id(a)) print(id(b)) 

上面的例子,首先创建了对象90,然后a引用了这个对象,接着b也引用了这个对象,通过下面两个输出语句,可以发现它们输出相同的内容,因为它们引用了共同的对象90。

3 数据类型

Python中的内置数据类型如下。

3.1 数值类型

数值类型包括int、float、complex,即整数、浮点数、复数三种,

a = 10 b = 1.09 c = 1 + 4j print(type(a)) print(type(b)) print(type(c)) 

type()函数可以查看变量所引用对象的类型,因此上面程序的输出为:

<class 'int'> <class 'float'> <class 'complex'> 

3.2 字符串类型

Python中的字符串类型为str,

a = "10" print(type(a)) 

上面程序的输出为

<class 'str'> 

3.3 序列类型

序列类型,sequence type,从英文的角度应该能看出这种类型所存储的数据是有顺序的,序列类型细分为list、tuple、range。

3.3.1 列表类型

list,即列表类型,可以用来存多个数据项,这些数据项是存放的,当新加元素时会被放在列表的末尾。

mylist = ["apple", "banana", "orange"] print(type(mylist)) print(mylist) 

输出为:

<class 'list'> ['apple', 'banana', 'orange'] 

3.3.2 元组

tuple,称为元组,也是用于存多个数据项的有序序列。注意,元组是不可变的,一旦创建,元组的数据项不能被修改、增加、删除。

3.3.3 range

range,是range()函数返回的对象的类型,该对象是一个数字序列,这个序列可以转为list。

r = range(10) print(type(r)) print(list(r)) 

上面程序的输出为:

<class 'range'> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

3.4 映射类型

Python中的映射类型是dict,也称为字典,它是存储键值对的一种结构,字典中键和值用逗号分隔,键值对之间用逗号分隔,字典整体放在大括号中。键必须是唯一的,否则会被覆盖,但值不必。

mydict = {"name":"Peter", "address":"Test Road"} print(type(mydict)) print(mydict) 

输出如下:

<class 'dict'> {'name': 'Peter', 'address': 'Test Road'} 

上面的例子展示了,创建一个字段并输出里面的内容的过程。

3.5 集合类型

集合是用于存放数据项的一种容器,它有两个特点,无序、不允许重复。可以通过将数据项放到大括号中并且用逗号分隔来创建集合。集合分两种:set、frozenset。

#整数集合 myintset = {1, 3, 4} #混合类型的集合 myset = {1, "test", (1, 3, 4)} print(myintset) print(myset) 

输入结果:

{1, 3, 4} <class 'set'> {1, 'test', (1, 3, 4)} <class 'set'> 

frozenset是具有set特征的新类,一旦创建就不能更改其内的数据项:

fset = frozenset([1,2,3]) print(type(fset)) print(fset) 

输出为:

<class 'frozenset'> frozenset({1, 2, 3}) 

3.6 布尔类型

布尔类型用于表示逻辑值:True、False,注意True、False是Python的关键字,首字母必须大写,在底层,True实际上是1,False是0,Python中其他类型的对象在布尔上下文中会被自动转换成布尔值:零、None、空序列(空字符串、空列表、空元组)、空字典等会被转换为 False,其他值默认为 True。使用内置函数 bool() 将任意值转换为布尔值,转换规则符合刚刚提到的真假判定。

简单示例:

a = True b = False print(a and b) print(a or b) print(not a) print(True + True) print(bool(0)) print(bool([1, 2, 3])) print(b) 

输入结果:

False True False 2 False True False 

3.7 二进制类型

Python中二进制类型主要有三种,bytes(字节串)、bytearray(字节数组)和memoryview(内存视图)。它们是用来处理非文本数据(图像、音频、视频文件等)时的重要数据类型。

3.7.1 bytes(字节串)

bytes表示字节的序列,是不可变类型,通过bytes()函数或在字符串前端加b前缀来定义。

b = b'hello' #直接用b''定义bytes print(b) print(b[1]) # b[1] = 90 #不能修改bytes,会报错 

3.7.2 bytearray(字节数组)

bytearray表示可变的字节序列,可以修改数据项(元素),通过bytearray()函数创建字节数组。

ba = bytearray(b'hello') print(ba) ba[1] = 100 #修改第二个字节 print(ba) ba.append(33) #添加新的字节 print(ba) 

上面程序的输出如下:

ytearray(b'hello') bytearray(b'hdllo') bytearray(b'hdllo!') 

3.7.3 memoryview(内存视图)

memoryview提供对已有二进制数据的不同形式访问,不复制数据。

# 创建可变的bytearray对象 data = bytearray(b'hello world') # 创建memoryview对象,指向data内存 mv = memoryview(data) #输出第一个字节的整数值,104代表'h' print(mv[0]) # 修改memoryview中的数据,实际上修改的是底层bytearray mv[0] = 72 # 将'h'ASCII码104修改为'H'的ASCII码72 print(data) #输出修改后的bytearray内容:bytearray(b'Hello world') 

上面程序的输出为:

104 bytearray(b'Hello world') 

3.8 NoneType类型

NoneType是一个非常特殊且唯一的类型,它只有一个唯一的值——None。None通常用来表示无值或空值,常见于函数没有明确返回值时,或者变量在那时没有被赋值的情况。NoneType类型只有一个实例,即None,是Python中的单例对象,通常用于表示缺失值、未初始化值或特殊的空状态,与False、0、空字符串等都不同,它表示“什么都没有”的状态,判断变量是否为None时,推荐使用is运算符(例如variable is None),而不是==,因为None是单例,使用is判断更准确。

def find_item(items, target): for item in items: if item == target: return item # 未找到返回None return None result = find_item(['apple', 'banana'], 'orange') if result is None: print('未找到目标') else: print('找到目标项:', result) 

4 总结

Python中的变量无需声明类型,类型随赋值动态确定。丰富的数据类型支持多样化的数据存储和操作,二进制类型适合处理非文本文件和数据流,NoneType表示缺失或无值状态。
我是欧阳方超,把事情做好了自然就有兴趣了,如果你喜欢我的文章,欢迎点赞、转发、评论加关注。我们下次见。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/187797.html

(0)
上一篇 2025-09-12 10:10
下一篇 2025-09-12 10:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信