- Python 基础知识
- Python - 主页
- Python - 概述
- Python - 历史
- Python - 特性
- Python 与 C++
- Python——Hello World 程序
- Python - 应用领域
- Python解释器
- Python-环境设置
- Python-虚拟环境
- Python - 基本语法
- Python - 变量
- Python - 数据类型
- Python - 类型转换
- Python - Unicode 系统
- Python - 文字
- Python - 运算符
- Python - 运算符优先级
- Python - 算术运算符
- Python - 赋值运算符
- Python - 增强运算符
- Python - 比较运算符
- Python - 逻辑运算符
- Python - 位运算符
- Python - 会员运算符
- Python - 身份运算符
- Python - 注释
- Python - 用户输入
- Python - 数字
- Python - 布尔值
- Python 控制语句
- Python - 控制流
- Python - 决策
- Python - 如果有的话
- Python - 大小写匹配语句
- Python - for 循环
- Python - for-else 循环
- Python - While 循环
- Python-break语句
- Python-继续语句
- Python - pass 语句
- Python 函数和模块
- Python - 函数
- Python - 默认参数
- Python - 关键字参数
- Python - 仅关键字参数
- Python - 位置参数
- Python - 仅位置参数
- Python - 任意参数
- Python - 变量作用域
- Python - 函数注释
- Python - 模块
- Python - 内置函数
- Python 字符串
- Python-字符串
- Python - 字符串切片
- Python-修改字符串
- Python-字符串连接
- Python——字符串格式化
- Python - 转义字符
- Python - 字符串方法
- Python - 弦乐练习
- Python 列表
- Python - 列表
- Python - 访问列表项
- Python - 更改列表项
- Python - 添加列表项
- Python - 删除列表项
- Python - 循环列表
- Python - 列表理解
- Python - 列表排序
- Python - 复制列表
- Python - 连接列表
- Python - 列表方法
- Python - 列出练习
- Python 元组
- Python - 元组
- Python - 访问元组项
- Python - 更新元组
- Python - 解压元组
- Python - 循环元组
- Python - 连接元组
- Python - 元组方法
- Python - 元组练习
- Python 集
- Python - 集合
- Python - 访问设置项
- Python - 添加设置项
- Python - 删除设置项
- Python - 循环集
- Python - 连接集
- Python - 复制集
- Python - 集合运算符
- Python - 设置方法
- Python - 设置练习
- Python 字典
- Python - 字典
- Python - 访问字典项目
- Python - 更改字典项目
- Python - 添加字典项
- Python - 删除字典项
- Python - 字典查看对象
- Python - 循环字典
- Python - 复制字典
- Python - 嵌套字典
- Python - 字典方法
- Python - 字典练习
- Python 数组
- Python-数组
- Python - 访问数组项
- Python - 添加数组项
- Python - 删除数组项
- Python - 循环数组
- Python - 复制数组
- Python - 反转数组
- Python - 数组排序
- Python - 连接数组
- Python - 数组方法
- Python - 数组练习
- Python 文件处理
- Python - 文件处理
- Python-写入文件
- Python-读取文件
- Python - 重命名和删除文件
- Python - 目录
- Python - 文件方法
- Python - 操作系统文件/目录方法
- 面向对象编程
- Python - OOP 概念
- Python - 对象和类
- Python - 类属性
- Python - 类方法
- Python - 静态方法
- Python - 构造函数
- Python - 访问修饰符
- Python——继承
- Python——多态性
- Python - 方法重写
- Python - 方法重载
- Python - 动态绑定
- Python - 动态类型
- Python - 抽象
- Python-封装
- Python - 接口
- Python - 包
- Python - 内部类
- Python - 匿名类和对象
- Python-单例类
- Python - 包装类
- Python-枚举
- Python-反射
- Python 错误与异常
- Python - 语法错误
- Python - 异常
- Python - try- except 块
- Python - try-finally 块
- Python - 引发异常
- Python - 异常链
- Python - 嵌套 try 块
- Python - 用户定义的异常
- Python-日志记录
- Python-断言
- Python - 内置异常
- Python 多线程
- Python-多线程
- Python-线程生命周期
- Python - 创建线程
- Python - 启动线程
- Python - 连接线程
- Python - 命名线程
- Python-线程调度
- Python-线程池
- Python - 主线程
- Python-线程优先级
- Python - 守护线程
- Python - 同步线程
- Python同步
- Python-线程间通信
- Python-线程死锁
- Python - 中断线程
- Python 网络
- Python-网络
- Python-套接字编程
- Python-URL 处理
- Python - 泛型
- Python 杂项
- Python - 日期和时间
- Python - 数学
- Python - 迭代器
- Python - 生成器
- Python - 闭包
- Python - 装饰器
- Python - 递归
- Python - 正则表达式
- Python-PIP
- Python-数据库访问
- Python - 弱引用
- Python-序列化
- Python - 模板
- Python - 输出格式
- Python-性能测量
- Python-数据压缩
- Python - CGI 编程
- Python - XML 处理
- Python - 图形用户界面编程
- Python - 命令行参数
- Python - 文档字符串
- Python-JSON
- Python-发送电子邮件
- Python - 进一步扩展
- Python - 工具/实用程序
- Python - 图形用户界面
- Python 问题与解答
- Python - 编程示例
- Python - 快速指南
- Python - 有用的资源
- Python - 讨论
Python - 数字
Python 内置支持存储和处理数字数据(Python Numbers)。大多数时候,您几乎在每个 Python 应用程序中都会使用数字。显然,任何计算机应用程序都与数字打交道。本教程将讨论不同类型的 Python 数字及其属性。
Python - 数字类型
Python 中提供了三种内置数字类型:
- 整数(int)
- 浮点数(float)
- 复数_
Python 还有一个内置的布尔数据类型,称为bool。它可以被视为int类型的子类型,因为它有两个可能的值True和False分别代表整数 1 和 0。
Python - 整数
在Python中,任何没有存储小数部分的数字都是整数。(请注意,如果数字中的小数部分为 0,并不意味着它是整数。例如数字 10.0 不是整数,它是一个小数部分为 0 的浮点数,其数值为 10。)整数可以是零、正整数或负整数。例如,1234、0、-55在Python中都表示整数。
形成整数对象的方法有3种。使用 (a) 文字表示,(b) 计算为整数的任何表达式,以及 (c) 使用int()函数。
文字是一种用于直接在源代码中表示常量的表示法。例如 -
>>> a =10
但是,请看下面对整型变量 c 的赋值。
a=10 b=20 c=a+b print ("a:", a, "type:", type(a)) print ("c:", c, "type:", type(c))
它将产生以下输出-
a: 10 type: <class 'int'> c: 30 type: <class 'int'>
这里,c确实是一个整型变量,但是首先计算表达式a+b,并将其值间接赋值给c。
形成整数对象的第三种方法是使用 int() 函数的返回值。它将浮点数或字符串转换为整数。
>>> a=int(10.5) >>> b=int("100")
您可以将整数表示为二进制、八进制或十六进制数。但是,该对象在内部存储为整数。
二进制数
仅由二进制数字(1 和 0)组成并以0b为前缀的数字是二进制数。如果将二进制数分配给变量,它仍然是 int 变量。
A 表示二进制形式的整数,直接将其存储为文字,或者使用 int() 函数,其中基数设置为 2
a=0b101 print ("a:",a, "type:",type(a)) b=int("0b101011", 2) print ("b:",b, "type:",type(b))
它将产生以下输出-
a: 5 type: <class 'int'> b: 43 type: <class 'int'>
Python 中还有bin()函数。它返回一个相当于整数的二进制字符串。
a=43 b=bin(a) print ("Integer:",a, "Binary equivalent:",b)
它将产生以下输出-
Integer: 43 Binary equivalent: 0b101011
八进制数
八进制数仅由数字 0 到 7 组成。为了指定整数使用八进制表示法,需要以0o(小写 O)或0O(大写 O)为前缀。八进制数的字面表示如下 -
a=0O107 print (a, type(a))
它将产生以下输出-
71 <class 'int'>
请注意,该对象在内部存储为整数。八进制数 107 的十进制等效值为 71。
由于八进制有 8 个符号(0 到 7),因此其基数为 7。因此,在使用 int() 函数将八进制字符串转换为整数时,需要将基数参数设置为 8。
a=int('20',8) print (a, type(a))
它将产生以下输出-
16 <class 'int'>
八进制 30 的十进制相当于 16。
在以下代码中,从八进制表示法获取两个 int 对象并执行它们的加法。
a=0O56 print ("a:",a, "type:",type(a)) b=int("0O31",8) print ("b:",b, "type:",type(b)) c=a+b print ("addition:", c)
它将产生以下输出-
a: 46 type: <class 'int'> b: 25 type: <class 'int'> addition: 71
要获取整数的八进制字符串,请使用oct()函数。
a=oct(71) print (a, type(a))
十六进制数
顾名思义,十六进制数系统中有 16 个符号。它们是0-9、A-F。前10位数字与十进制数字相同。字母A、B、C、D、E和F分别相当于11、12、13、14、15和16。这些字母符号可以使用大写或小写。
对于十六进制整数的字面表示,请在其前面加上0x或0X前缀。
a=0XA2 print (a, type(a))
它将产生以下输出-
162 <class 'int'>
要将十六进制字符串转换为整数,请在int()函数中将基数设置为 16 。
a=int('0X1e', 16) print (a, type(a))
尝试以下代码片段。它接受一个十六进制字符串,并返回整数。
num_string = "A1" number = int(num_string, 16) print ("Hexadecimal:", num_string, "Integer:",number)
它将产生以下输出-
Hexadecimal: A1 Integer: 161
但是,如果字符串包含十六进制符号表之外的任何符号(例如 X001),则会引发以下错误 -
Traceback (most recent call last): File "C:\Python311\var1.py", line 4, in <module> number = int(num_string, 16) ValueError: invalid literal for int() with base 16: 'X001'
Python的标准库有hex()函数,使用它可以获得整数的十六进制等值。
a=hex(161) print (a, type(a))
它将产生以下输出-
0xa1 <class 'str'>
尽管整数可以表示为二进制、八进制或十六进制,但在内部它仍然是整数。因此,在执行算术运算时,表示形式并不重要。
a=10 #decimal b=0b10 #binary c=0O10 #octal d=0XA #Hexadecimal e=a+b+c+d print ("addition:", e)
它将产生以下输出-
addition: 30
Python - 浮点数
浮点数具有整数部分和小数部分,由小数点符号 (.) 分隔。默认情况下,该数字为正数,为负数添加前缀短划线 (-) 符号。
浮点数是Python float 类的对象。要存储浮点对象,可以使用文字表示法、算术表达式的值或使用 float() 函数的返回值。
使用字面量是最直接的方式。只需将带有小数部分的数字分配给变量即可。以下每个语句都声明一个浮点对象。
>>> a=9.99 >>> b=0.999 >>> c=-9.99 >>> d=-0.999
在Python中,浮点数小数点后的位数没有限制。然而,为了简化表示,使用了E或e符号。E 代表“十”。例如,E4 是 10 的 4 次方(或 10 的 4次方),e-3 是 10 的 -3 次方。
在科学记数法中,数字有系数和指数部分。该系数应为大于或等于 1 但小于 10 的浮点数。因此,1.23E+3、9.9E-5 和 1E10 是科学计数法浮点数的示例。
>>> a=1E10 >>> a 10000000000.0 >>> b=9.90E-5 >>> b 9.9e-05 >>> 1.23E3 1230.0
形成浮点对象的第二种方法是间接的,使用表达式的结果。这里,两个浮点数的商被分配给一个变量,该变量引用一个浮点数对象。
a=10.33 b=2.66 c=a/b print ("c:", c, "type", type(c))
它将产生以下输出-
c: 3.8834586466165413 type <class 'float'>
Python 的 float() 函数返回一个浮点对象,如果它具有适当的内容,则解析数字或字符串。如果括号中没有给出任何参数,则返回 0.0,对于int参数,会添加带 0 的小数部分。
>>> a=float() >>> a 0.0 >>> a=float(10) >>> a 10.0
即使整数以二进制、八进制或十六进制表示,float() 函数也会返回小数部分为 0 的浮点数。
a=float(0b10) b=float(0O10) c=float(0xA) print (a,b,c, sep=",")
它将产生以下输出-
2.0,8.0,10.0
float ()函数从包含浮点数的字符串中检索浮点数,该浮点数可以采用标准小数点格式,也可以采用科学记数法。
a=float("-123.54") b=float("1.23E04") print ("a=",a,"b=",b)
它将产生以下输出-
a= -123.54 b= 12300.0
在数学中,无穷大是一个抽象的概念。从物理上来说,无限大的数字永远无法存储在任何容量的内存中。然而,对于大多数计算机硬件配置而言,Inf 表示的是 10 的 400 次方的非常大的数字。如果使用“Infinity”作为 float() 函数的参数,它将返回 Inf。
a=1.00E400 print (a, type(a)) a=float("Infinity") print (a, type(a))
它将产生以下输出-
inf <class 'float'> inf <class 'float'>
另一个这样的实体是 Nan(代表非数字)。它表示任何未定义或不可表示的值。
>>> a=float('Nan') >>> a Nan
Python - 复数
在本节中,我们将详细了解Python中的复杂数据类型。复数在电磁学、电子学、光学和量子理论的数学方程和定律中都有应用。傅立叶变换使用复数。它们用于波函数计算、滤波器设计、数字电子学中的信号完整性、射电天文学等。
复数由实部和虚部组成,用“+”或“−”分隔。实部可以是任何浮点数(或其本身是复数)。虚部也是浮点/复数,但乘以虚数。
在数学中,虚数“i”被定义为-1的平方根($\sqrt{−1}$)。因此,复数表示为“x+yi”,其中x是实部,“y”是虚部系数。
通常,虚数用符号“j”代替“I”,以避免与电学理论中电流的用法相混淆。Python 还使用“j”作为虚数。因此,“x+yj”是Python中复数的表示。
与 int 或 float 数据类型一样,复杂对象可以通过文字表示或使用 complex() 函数形成。以下所有语句形成一个复杂对象。
>>> a=5+6j >>> a (5+6j) >>> type(a) <class 'complex'> >>> a=2.25-1.2J >>> a (2.25-1.2j) >>> type(a) <class 'complex'> >>> a=1.01E-2+2.2e3j >>> a (0.0101+2200j) >>> type(a) <class 'complex'>
注意,实部和虚部系数都必须是浮点数,并且可以用标准小数点符号或科学记数法表示。
Python 的complex()函数有助于形成复杂类型的对象。该函数接收实部和虚部参数,并返回复数。
Complex() 函数有两个版本,带两个参数和带一个参数。使用带有两个参数的complex() 非常简单。它使用第一个参数作为实部,第二个参数作为虚部系数。
a=complex(5.3,6) b=complex(1.01E-2, 2.2E3) print ("a:", a, "type:", type(a)) print ("b:", b, "type:", type(b))
它将产生以下输出-
a: (5.3+6j) type: <class 'complex'> b: (0.0101+2200j) type: <class 'complex'>
在上面的示例中,我们使用 x 和 y 作为浮点参数。它们甚至可以是复杂的数据类型。
a=complex(1+2j, 2-3j) print (a, type(a))
它将产生以下输出-
(4+4j) <class 'complex'>
对上面的例子感到惊讶吗?将“x”设为1+2j,将“y”设为2-3j。尝试手动计算“x+yj”,您就会知道。
complex(1+2j, 2-3j) =(1+2j)+(2-3j)*j =1+2j +2j+3 =4+4j
如果complex()函数只使用一个数字参数,它会将其视为实部的值;虚部设置为0。
a=complex(5.3) print ("a:", a, "type:", type(a))
它将产生以下输出-
a: (5.3+0j) type: <class 'complex'>
如果complex()函数唯一的参数是具有复数表示形式的字符串,则该函数还可以将字符串解析为复数。
在以下代码片段中,要求用户输入一个复数。它被用作参数。由于 Python 将输入读取为字符串,因此该函数会从中提取复杂对象。
a= "5.5+2.3j" b=complex(a) print ("Complex number:", b)
它将产生以下输出-
Complex number: (5.5+2.3j)
Python 的内置复杂类有两个属性real和imag - 它们返回对象的实部和虚部系数。
a=5+6j print ("Real part:", a.real, "Coefficient of Imaginary part:", a.imag)
它将产生以下输出-
Real part: 5.0 Coefficient of Imaginary part: 6.0
复杂类还定义了一个conjugate()方法。它返回另一个复数,其虚数部分的符号相反。例如,x+yj 的共轭是 x-yj。
>>> a=5-2.2j >>> a.conjugate() (5+2.2j)