python记录之数字

Python是一种功能强大的编程语言,它支持多种数字类型,包括整数、浮点数、复数和其他一些与数字相关的概念。在本教程中,我们将深入探讨Python中的数字类型,以及它们的特性和操作。

1. 整数(Integers)

Python中的整数是没有小数部分的数字,可以是正数、负数或零。Python的整数类型具有任意精度,即可以非常大或非常小,不受固定范围的限制。

示例

a = 10  # 十进制整数
b = 0b10  # 二进制整数,等于十进制的2
c = 0o10  # 八进制整数,等于十进制的8
d = 0x10  # 十六进制整数,等于十进制的16

print(a, b, c, d)

2. 浮点数(Floats)

浮点数用于表示有小数部分的数字。Python中的浮点数通常是64位双精度浮点数。

示例

pi = 3.14159
e = 2.71828

print(pi * e)  # 浮点数乘法

浮点数在计算机中的表示方式可能导致一些精度问题,尤其是在进行大量计算或比较时。如果需要更高的精度,可以考虑使用decimal模块中的Decimal类。

3. 复数(Complex Numbers)

Python还支持复数类型,用于表示数学中的复数。复数由实部和虚部组成,通常用a + bj的形式表示,其中a是实部,b是虚部,j是虚数单位(在Python中,jJ都可以表示虚数单位)。

示例

z = 3 + 4j

print(z.real)  # 输出实部
print(z.imag)  # 输出虚部

# 复数运算
w = 2 - 3j
print(z + w)  # 复数加法
print(z * w)  # 复数乘法

4. 数字运算

Python支持常见的数学运算,包括加法(+)、减法(-)、乘法(*)、除法(/)、整除(//)、取模(%)和幂运算(**)。这些运算符可以用于整数、浮点数和复数。

示例:

x = 5
y = 3

print(x + y)  # 加法
print(x - y)  # 减法
print(x * y)  # 乘法
print(x / y)  # 除法,结果为浮点数
print(x // y)  # 整除,结果为整数
print(x % y)  # 取模
print(x ** y)  # 幂运算

5. 数学函数和模块

Python的math模块提供了大量的数学函数,如三角函数(sin、cos、tan)、对数函数(log、log10、exp)、幂函数(pow)和常数(pi、e)等。此外,还有cmath模块用于处理复数相关的数学运算。

示例

import math

print(math.sqrt(16))  # 计算平方根
print(math.sin(math.pi / 2))  # 计算正弦值

# 使用cmath模块处理复数
import cmath
print(cmath.sqrt(-1))  # 计算负数的平方根,结果为虚数

6. 类型转换

在Python中,可以使用内置函数进行数字类型转换。int()函数可以将浮点数或字符串转换为整数(如果可能的话),float()函数可以将整数或字符串转换为浮点数,complex()函数可以创建复数。

示例

x = 3.14
y = int(x)  # 将浮点数转换为整数
print(y)  # 输出: 3

z = "123"
w = int(z)  # 将字符串转换为整数
print(w)  # 输出: 123

# 创建复数
c = complex(3, 4)
print(c)  # 输出: (3+4j)

7. 数字的格式化输出

在Python中,格式化数字输出是一项常见的任务。Python提供了多种方法来格式化数字,使其满足特定的显示要求。

7.1 使用 % 运算符进行格式化

% 运算符是一个老式的字符串格式化方法,它允许你在字符串中嵌入一个或多个格式化指令,这些指令会被后续的变量值所替换。

示例

num = 3.14159
formatted_string = '圆周率的近似值是 %.2f' % num
print(formatted_string)  # 输出: 圆周率的近似值是 3.14
7.2 使用 str.format() 方法进行格式化

str.format() 方法是Python 2.6及以后版本中推荐使用的字符串格式化方法。它提供了更多的灵活性和功能。

示例

num = 3.14159
formatted_string = '圆周率的近似值是 {:.2f}'.format(num)
print(formatted_string)  # 输出: 圆周率的近似值是 3.14

str.format() 方法中,{} 是占位符,用于表示需要被替换的变量。.2f 是一个格式说明符,表示浮点数并保留两位小数。

7.3 使用 f-string 进行格式化(Python 3.6+)

f-string 是Python 3.6及以后版本中引入的一种新的字符串格式化方法。它以 fF 前缀开头,并在字符串内部使用大括号 {} 来包含变量或表达式。

示例

num = 3.14159
formatted_string = f'圆周率的近似值是 {num:.2f}'
print(formatted_string)  # 输出: 圆周率的近似值是 3.14

f-string 提供了简洁易读的方式来嵌入变量和表达式,并且可以在大括号内直接执行表达式。

8. 数字的位运算

Python还支持位运算,这些运算直接在整数的二进制表示上进行操作。位运算包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)等。

示例

a = 60  # 60 = 0011 1100
b = 13  # 13 = 0000 1101

print(bin(a & b))  # 按位与,输出: 0b12 (即十进制数 4)
print(bin(a | b))  # 按位或,输出: 0b1111 1101 (即十进制数 61)
print(bin(a ^ b))  # 按位异或,输出: 0b1101 0001 (即十进制数 57)
print(bin(~a))     # 按位取反(取反后再转换为补码形式),输出: -0b1000 0100 (即十进制数 -61)
print(bin(a << 2)) # 左移两位,输出: 0b1111 0000 (即十进制数 240)
print(bin(a >> 1)) # 右移一位,输出: 0b0001 1110 (即十进制数 30)

在上面的示例中,bin() 函数用于将整数转换为二进制字符串表示。

9. 数字的迭代和生成

虽然数字本身不是可迭代对象,但我们可以使用内置函数或迭代器来生成数字序列。

示例

# 使用 range() 函数生成整数序列
for i in range(5):
    print(i)  # 输出: 0 1 2 3 4

# 使用 itertools 模块生成数字序列
import itertools

# 生成一个无限递增的整数迭代器
counter = itertools.count(start=1, step=2)
print(next(counter))  # 输出: 1
print(next(counter))  # 输出: 3
print(next(counter))  # 输出: 5
# ... 可以继续调用 next() 来获取下一个数字

10. 总结

Python提供了丰富的数字类型和操作,使我们可以方便地进行各种数学计算和数据处理。从整数、浮点数、复数到数字运算

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值