首页 > 编程语言 >2 Python数据类型

2 Python数据类型

时间:2024-02-06 14:33:56浏览次数:32  
标签:False Python 数据类型 int print True id

介绍

Python3中主要的内置类型为:数字、列表、字典、类、实例和异常。
通常使用到的基本数据类型有:

  1. 数字intfloatcomplex):int表示整数;float表示浮点数;complex表示复数,并用jJ表示虚数部分。
  2. 布尔值bool):实际上boolint的子类型,其只有两种取值(TrueFalse),并支持直接与int类型的变量做运算(True表示为\(1\),False表示为\(0\))。
  3. 文本字符串str):用单引号''或双引号""包围的变量,表示文本。
  4. 二进制列bytes):属于文本类型的高级数据类型,除了bytes之外还有bytearray等类型,一般形式是b''
  5. 列表listtuple):被[]包围的是列表list,属于可变数据类型;被()包围的是元组tuple,属于不可变数据类型。
  6. 集合set):被{}包围的若干个数据,其中不能包含重复的元素。
  7. 字典dict):被{}包围的若干个数据,但是其中的元素形如a:ba,b分别是基本数据类型,表示一种映射。在一个字典内,不能存在相同的a
  8. 空值NoneType):只有一个取值None
  9. 其他,例如“类和类的实例”、“异常”等。

可变类型和不可变类型

与Java类似,像intfloatboolstrtuple等类型的数据属于不可变数据类型;listsetdict属于可变数据类型。

  • 不可变数据类型:变量被修改时,内存地址也发生改变;
  • 可变数据类型:变量被修改时,直接在内存地址上修改,修改之后内存地址不会发生改变。

可以通过id()函数获取变量的唯一标识值,以此来表征内存地址。

id(object)
'''
返回对象的“标识值”,在此对象的生命周期中保证是唯一且恒定的。
:param object: 变量。
:rtype: int。
'''
a = 12
print(id(a)) # 140711708867352
a = 3
print(id(a)) # 140711708867064(内存地址被修改)
b = 'str'
print(id(b)) # 140711707721680
b += 'a'
print(id(b)) # 2231534285232(内存地址被修改)

c = ['abcd', 'efg']
print(id(c)) # 2231531657472
c += ['hij']
print(id(c)) # 2231531657472(内存地址未修改)

对于可变数据类型的比较,在已经

获取变量的类型

Python中内置了函数type()isinstance()来获取判断变量的类型。

type(object)
'''
获取变量的数据类型。
:param object: 变量。
:return: 返回object的类型。
'''

# 使用:
print(type(10))       # 输出<class 'int'>
print(type('python')) # 输出<class 'str'>
print(type(True))     # 输出<class 'bool'>
isinstance(object, classinfo)
'''
判断变量的数据类型。
:param object: 变量。
:param classinfo: 类型。
:return: True: object是classinfo或者其子类的实例。
         False: object不是给定类型的对象。
'''

# 使用:
print(isinstance('player', str)) # True
print(isinstance(12, int))       # True
print(isinstance(10, float))     # False,说明float与int并无关系。
print(isinstance(True, int))     # True,说明bool是int的子类型。
print(isinstance(True + 1, int)) # True
print(type(True) == int)         # False,说明type()函数没有考虑到子类型,因此在判断类型的时候不推荐使用'type() == '的方式。

数字、布尔值以及运算符

布尔取值

NoneFalse、任何数值类型的\(0\)(包括00.00j)、空列表(''[]{}()range(0))等具有“空/假”意义的变量被判断为False;其他值为True

基本运算

含义 Python表示 数学表示 备注
a + b \(a + b\)
a - b \(a - b\)
a * b \(a \times b\)
a / b \(a \div b\) 返回float类型
整数除 a // b \(\lfloor a \div b \rfloor\) 返回int类型
取余 a % b \(a\ mod\ b\)
乘方 a ** b \(a^b\)

比较运算

比较运算的返回值是bool类型。

含义 Python表示 含义 Python表示
等于 a == b 不等于 a != b
小于 a < b 大于 a > b
小于等于 a <= b 大于等于 a >= b

赋值运算

含义 Python表示 解释
直接赋值 a = b
加法赋值 a += b \(a = a + b\)
减法赋值 a -= b \(a = a - b\)
乘法赋值 a *= b \(a = a \times b\)
除法赋值 a /= b \(a = a \div b\),返回float类型
整除赋值 a //= b \(a = \lfloor \frac{a}{b} \rfloor\),返回int类型
取模赋值 a %= b \(a = a\ mod\ b\)
乘方赋值 a ** b \(a = a ^ b\)
海象运算 a := b Python3.8新增

位运算

含义 符号 含义 符号
按位与 & 按位或 |
按位异或 ^ 按位取反 ~
左移 << 右移 >>

逻辑运算

含义 Python表示
a and b
a or b
not a

成员运算

Python表示 描述
in 如果在指定的序列中找到值返回True,否则返回False
not in 如果在指定的序列中没有找到值返回True,否则返回False
10 in [10, 11, 12]       # True
10 in ['10', '11', '12'] # False
'a' in ('a', 'b')        # True
10 not in range(10)      # True
[3] in [[1], [2], [3]]   # True

身份运算

Python表示 描述 解释
is 判断两个标识符是否引用自同一对象 x is y,类似id(x) == id(y)
is not 判断两个标识符是否引用自不同对象 x is not y,类似id(x) != id(y)

不推荐对intfloatstr类型使用成员运算符,比较关系尽量使用==运算符

d1, d2 = [2, 3], [2, 3]
d = d1 is d2
e1 = e2 = [3, 4, 5]
e = e1 is e2
print(d, e, [2, 3] is [2, 3]) # False, True, False

参考成员运算

a = [3]
b = [[1], [2], [3]]
print(a in b) # True,说明面向列表的in运算并非是按照is运算作为判断标准的。

标签:False,Python,数据类型,int,print,True,id
From: https://www.cnblogs.com/bearpipy/p/18009566

相关文章

  • 【CPL-2023】W8笔记-数据类型
    数据类型charshortint通常表示为一个字长long通常表示位一个字长longlongdoublefloatchar语言发展两条线路强类型->接近系统底层弱类型数据类型c标准有的没有严格限制short<=int<=long而且与编译器类型也有关系类型所占机器位数与特定的编译器平台相......
  • 1 使用venv创建Python虚拟环境
    Python从3.3版本开始,自带虚拟环境配置包venv。虚拟环境下通过pip命令下载的Python包不会影响到系统中的Python,可以做到项目之间环境的分离(目前Pycharm新建环境默认使用这种方式)。创建环境py-mvenvenviron上述命令创建虚拟环境environ。激活环境首先进入Scripts文件夹:cde......
  • python简单加解密
    有的内容并不怕别人看,但仍想简单加解密一下,可以考虑以下代码:defencrypt(text):encrypted_text=""forcharintext:unicode_value=ord(char)+10#在原有的Unicode值上加上10encrypted_text+=chr(unicode_value)returnencrypted_tex......
  • (python)代码学习||2024.2.4||题目是codewars的【 All Balanced Parentheses】
    题目链接:https://www.codewars.com/kata/5426d7a2c2c7784365000783/pythondefbalanced_parens(n):'''Toconstructallthepossiblestringswithnpairsofbalancedparenthesesthisfunctionmakesuseofastackofitemswiththefoll......
  • python性能分析line_profiler
    在编程世界中,效率是王道。对于Python开发者来说,line_profiler是一把锐利的剑,能够深入代码的每一行,找出性能瓶颈。今天,就让我们一起深入探索line_profiler,学习如何用它为你的Python程序注入强心剂,让代码效率飞跃。line_profiler:性能分析的利器line_profiler是一个Python工具,专......
  • Iron Python中使用NLTK库
    因为我是程序员,所以会写各种语言的爬虫模版,对于使用NLTK库也是有很的经验值得大家参考的。其实总的来说,NLTK是一个功能强大的NLP工具包,为研究人员和开发者提供了丰富的功能和资源,用于处理和分析文本数据。使用非常方便,而且通俗易懂,今天我将例举一些问题以供大家参考。1、问题背景......
  • python爬虫爬取豆瓣电影top250并写入Excel中
    importrequestsimportreimportopenpyxl#创建工作表wb=openpyxl.Workbook()ws=wb.active#调整列距forletterin['B','C']:ws.column_dimensions[letter].width=66#发送网络请求headers={"User-Agent":'Mozilla/5.0(WindowsNT10.0;Win64;x64)......
  • python发送、接收exchange邮件
    导包importdatetimefrompathlibimportPathimportpytzfromexchangelibimportConfiguration,Account,DELEGATE,Q,Credentials,HTMLBody,Message,FileAttachmentfromexchangelib.protocolimportCachingProtocol连接邮箱server='example.com'do......
  • 打造个性化日历:Python编程实现,选择适合你的方式!
    在本文中,我们将使用Python编写一个简单的日历程序。虽然市面上已经存在现成的日历功能,并且有第三方库可以直接调用实现,但我们仍然希望通过自己编写日历程序来引出我认为好用的日历实现。希望这篇文章能够对你有所帮助。在Python官方文档中,我们可以找到一个名为"calendar"的模块,它......
  • ML-Agents Python包安装
    Unity的机器学习工具包ML-Agents还是挺好用的,但是其Python后端在安装的过程中会出一些问题,在这里记录一下。为了方便多Python环境管理,我在搭建环境的时候使用了Anaconda包管理器。目前ML-Agents支持的Python版本为3.10.12,版本过高或过低都可能会缺少对应的依赖。打开一个PowerShe......