Python 数字(Number)

 

目录

1.数字类型

2. 数字类型转换

2、Python 数字运算

a). 算术运算符

b). 比较运算符

c). 逻辑运算符

and:与(逻辑与)

or:或(逻辑或)

not:非(逻辑非)

d). 位运算符

按位与(&):

按位或(|):

按位异或(^):

按位取反(~):

左移运算符(<<):

右移运算符(>>):

e). 赋值运算符

3、数学函数

4、随机数

5、三角函数

6、数学常量

Python 数字数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。

1.数字类型

  • 整型(int)

    通常被称为是整型或整数,是正或负整数,不带小数点。

  • 浮点型(float)

    浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示,例如2.5e2=2.5*10^2=250

  • 复数( complex)

    复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。

  • 布尔类型(Bool)

    布尔(bool)是整型的子类型。

    • 表示真假、对错、黑白等;

    • 值为TrueFalse:首字母大写,数值类型转换是为1和0;

    • 类型转换为bool:使用bool()函数;

    • 非0都是True;

    • 0、0.0、-0.0、空字符串、空列表、空字典、空集合、空元组、None等都是False

  • 进制

    • 二进制:0b + 二进制数

    • 八进制:0o + 八进制数

    • 十六进制:0x + 十六进制数

    • 十进制:正常赋值即可

a1=20#整数
print("整数:",a1)#20
​
a2=3.14#浮点数
print("浮点数:",a2)#3.14
​
a3=10+3j#复数
print("复数:",a3)#(10+3j)
​
a4=True#布尔值 True
print("布尔值:", a4)#True
​
a5=False#布尔值 False
print("布尔值:", a5)#False
​
b1=0b10 # 2进制
print("二进制:",b1)#2
​
b2=0o37 # 八进制
print("八进制:",b2)#31
​
b3 = 0xA0F # 十六进制
print("十六进制:",b3)#2575
​
b4=9 # 10进制
print("十进制:",b4)#9

​​​​​​

2. 数字类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。

int(x)将x转换为十进制整数(下取整)
float(x)将x转换到一个浮点数
bin(x)将x转换为二进制
oct(x)将x转换为八进制
hex(x)将x转换为十六进制
bool(x)将 x 转化为布尔值
complex(x)将x转换到一个复数,实数部分为 x,虚数部分为 0
complex(x, y)将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y
#二进制转十进制
print(int("0b110", 2))#6
#八进制转十进制
print(int("0o77", 8))#63
#十六进制转十进制
print(int("0xff", 16))#255

print(int(20.4))#20
print(int(20.6))#20
print(float(20))#20.0
print(bin(3))#0b11
print(oct(20))#0o24
print(hex(29))#0x1d
print(complex(95))#(95+0j)
print(complex(95,3))#(95+3j)

2、Python 数字运算

a). 算术运算符

  • +:加法

  • -:减法

  • *:乘法

  • /:除法

  • %:取模(取余数)

  • ** :幂运算

  • //:整除(取整数部分)

除法 / 总是返回一个浮点数

整除// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。

不同类型的数混合运算时会将整数转换为浮点数:

print(10 + 20.3)#加法运算:30.3
print(17 / 3)  # 整数除法返回浮点型:5.666666666666667
print(17 // 3)  # 整数除法返回向下取整后的结果:5
print(17.0 // 3)  # 整数除法返回向下取整后的结果:5.0
print(17 // 3.0)  # 整数除法返回向下取整后的结果:5.0
print(17 % 3)  # %操作符返回除法的余数:2
print(2**3) #幂运算2的3次方: 8

b). 比较运算符

  • ==:等于

  • !=:不等于

  • <:小于

  • >:大于

  • <=:小于等于

  • >=:大于等于

比较运算符的运算结果为布尔值

print(10==10.0)#只比较值是否相等:True
print(3.14!=3.1415)#True
print(255>170)#True
print(255<170)#False
print(255>=255)#True
print(255<=255)#True

print("-------------------------")

x=15
print(5<x<20)#注意:两个符号同时参与比较  不会先运算第一个<再运算第二个<
print(5<x<10)

print("-------------------------")

x=100
y=200
z=-10
a=True
print(a is not x is not y < z)#a和x判定 然后和y判定 然后和z判定
 

c). 逻辑运算符

  • and:与(逻辑与)

A and B表达式的结果: 如果A表达式的布尔判定为真则B表达式的结果作为整个表达式的结果,如果A表达式的布尔判定为假则A表达式的结果作为整个表达式的结果

注意: 如果A判定为假 B将不会执行

#A and B表达式的结果: 如果A表达式的布尔判定为真则B表达式的结果作为整个表达式的结果
def A():
    print("执行了A") # 打印
    return 10
def B():
    print("执行了B") # 打印
    return 20
re = A() and B()
print(re) #20

print("-------------------")

#A and B表达式的结果: 如果A表达式的布尔判定为假则A表达式的结果作为整个表达式的结果,且不执行B表达式
def A():
    print("执行了A") # 打印
    return 0
def B():
    print("执行了B") # 不打印
    return 20
re = A() and B()
print(re) #0

  • or:或(逻辑或)

A or B表达式的结果: 如果A表达式的布尔判定为假则B表达式的结果作为整个表达式的结果,如果A表达式的布尔判定为真则A表达式的结果作为整个表达式的结果

注意: 如果A判定为真 B将不会执行

#A or B表达式的结果: 如果A表达式的布尔判定为假则B表达式的结果作为整个表达式的结果
def A():
    print("执行了A") # 打印
    return 0
def B():
    print("执行了B") # 打印
    return 20
re = A() or B()
print(re) #20

print("-------------------")

#A or B表达式的结果: 如果A表达式的布尔判定为真则A表达式的结果作为整个表达式的结果,且不执行B表达式
def A():
    print("执行了A") # 打印
    return 10
def B():
    print("执行了B") # 不打印
    return 20
re = A() or B()
print(re) #0

  • not:非(逻辑非)

not A表达式的结果:如果A表达式的布尔判定为真则整个表达式的结果为假,如果A表达式的布尔判定为假则整个表达式的结果为真

A = True
print(not A)
A = False
print(not A)

 

d). 位运算符

Python中的位运算符主要用于处理整数类型的二进制位操作。以下是Python中的6种主要位运算符:

  • &:按位与

  • |:按位或

  • ^:按位异或

  • ~:按位取反

  • <<:左移位

  • >>:右移位

  1. 按位与(&):
    • 表达式:a & b

    • 功能:对于每一位,如果a和b的相应位都是1,则结果位为1,否则为0。

    # 示例:计算两个二进制数的按位与
    a = 0b1011  # 二进制表示的11
    b = 0b1101  # 二进制表示的13
    print(bin(a))
    print(bin(b))
    print("--------------------------")
    result_and = a & b  # 计算两者之间的按位与
    print(bin(result_and))  # 输出:0b1001 (十进制为9)

  2. 按位或(|):
    • 表达式:a | b

    • 功能:对于每一位,只要a和b中至少有一位是1,则结果位为1,否则为0。

    # 示例:计算两个二进制数的按位或
    a = 0b1011  # 二进制表示的11
    b = 0b1101  # 二进制表示的13
    print(bin(a))
    print(bin(b))
    print("--------------------------")
    result_or = a | b  # 计算两者之间的按位或
    print(bin(result_or))  # 输出:0b1111 (十进制为15)

  3. 按位异或(^):
    • 表达式:a ^ b

    • 功能:对于每一位,如果a和b的相应位不同(一个为1,另一个为0),则结果位为1,否则为0。

    # 示例:计算两个二进制数的按位异或
    a = 0b1011  # 二进制表示的11
    b = 0b1101  # 二进制表示的13
    print(bin(a))
    print(bin(b))
    print("--------------------------")
    result_xor = a ^ b  # 计算两者之间的按位异或
    print(bin(result_xor))  # 输出:0b110 (十进制为6)

  4. 按位取反(~):
    • 表达式:~a

    • 功能:对操作数a的每一个二进制位进行取反,即将1变为0,0变为1。

    • ~按位取反的计算结论是:~n = -(n+1)

    # 示例:计算一个二进制数的按位取反
    a = 0b1011
    result_not = ~a  # 计算a的按位取反
    print(bin(result_not))  # 输出:-0b1100
    #总结~n=-(n+1)
    print(a, result_not)

  5. 左移运算符(<<):
    • 表达式:a << b

    • 功能:将a的二进制表示向左移动b位,左边移出的部分会被丢弃,右边空出的位置补零。

    # 示例:将一个二进制数向左移动两位
    a = 0b1011
    print(bin(a))
    result_left_shift = a << 2  # 将a向左移动两位
    print(bin(result_left_shift))  # 输出:0b101100 (十进制为44)

  6. 右移运算符(>>):
    • 表达式:a >> b

    • 功能:将a的二进制表示向右移动b位,对于无符号整数,右边移出的部分会被丢弃,左边空出的位置补零(通常补0);对于有符号整数,右移时取决于具体实现,可能是算术右移(符号位扩展)或者逻辑右移(补0)。

# 示例:将一个有符号二进制数向右移动一位
a = -0b1000  # 十进制为-8
print(bin(a))
result_right_shift = a >> 1  # 将a向右移动一位
print(bin(result_right_shift))  # 输出:-0b100 (十进制为-4)

print("-------------------------------")

# 对于无符号数的例子
unsigned_a = 0b1000
print(bin(unsigned_a))
unsigned_result_right_shift = unsigned_a >> 1
print(bin(unsigned_result_right_shift))  # 输出:0b100 (十进制为4)

e). 赋值运算符

  • =:赋值

  • +=:加法赋值

  • -=:减法赋值

  • *=:乘法赋值

  • /=:除法赋值

  • %=:取模赋值

  • **=:幂运算赋值

  • //=:整除赋值

    注意:没有 a++、 a-- 这种自增自减运算符;

x=100
print(x)
x+=100
print(x)
x-=100
print(x)
x*=10
print(x)
x/=10
print(x)
x%=6
print(x)
x**=2
print(x)
x//=2
print(x)

3、数学函数

部分函数是python环境自带的 部分是math模块带的 部分是公共的

先引入math模块:

import math
函数返回值 ( 描述 )
abs(x)返回数字的绝对值,如abs(-10) 返回 10
math.ceil(x)返回数字的上入整数,如math.ceil(4.1) 返回 5
cmp(x, y)如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。 Python 3 已废弃,使用 (x>y)-(x<y) 替换。
math.exp(x)返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
math.fabs(x)以浮点数形式返回数字的绝对值,如math.fabs(-10) 返回10.0
math.floor(x)返回数字的下舍整数,如math.floor(4.9)返回 4
math.log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0
math.log10(x)返回以10为基数的x的对数,如math.log10(100)返回 2.0
max(x1, x2,...)返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)返回给定参数的最小值,参数可以为序列。
math.modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
math.pow(x, y)x**y 运算后的值。
round(x ,n)返回浮点数 x 的四舍五入值,如给出 n 值,则代表舍入到小数点后的位数。其实准确的说是保留值将保留到离上一位更近的一端。 1.保留整数只有一个小数时:4舍6入5看齐,奇进偶不进 2.保留整数或小数超过一个小数时:看保留位的下下位是否存在
math.sqrt(x)返回数字x的平方根。

4、随机数

先引入random库基础库:

import random
函数描述
random.choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。
random.randrange (start, stop,step)从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
random.random()随机生成下一个实数,它在[0,1)范围内。
random.shuffle(list)将序列的所有元素随机排序,修改原list
uniform(x, y)随机生成实数,它在[x,y]范围内.

5、三角函数

先引入math库基础库:

import math
函数描述
math.acos(x)返回x的反余弦弧度值。
math.asin(x)返回x的反正弦弧度值。
math.atan(x)返回x的反正切弧度值。
math.atan2(y, x)返回给定的 X 及 Y 坐标值的反正切值。
math.cos(x)返回x的弧度的余弦值。
math.sin(x)返回的x弧度的正弦值。
math.tan(x)返回x弧度的正切值。
math.degrees(x)将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
math.radians(x)将角度转换为弧度

6、数学常量

先引入math库基础库:

import math
常量描述
math.pi数学常量 pi(圆周率,一般以π来表示)
math.e数学常量 e,e即自然常数(自然常数)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值