为了账号安全,请及时绑定邮箱和手机立即绑定

Python3数据类型之数字

标签:
Python

https://img1.sycdn.imooc.com//5dd91e090001391719201080.jpg

1. Python数字类型的作用

   Python数字类型用来存储数值,它是不可变对象,一旦定义之后,其值不可以被修改。如果改变了数字类型的值,就要重新为其分配内存空间。

   定义一个数字类型的变量:a = 100, 变量a就存储了100这个数值


2. Python支持三种不同的数值类型

   (1)整型(int):Python整型数据,包含正整数和负整数。在Python3中,整型是没有限制大小的,也没有Python2中的Long类型。 同时可以使用十六进制(0x)或八进制(0o)来表示一个整数。

   (2)浮点型(float): Python浮点型由整数部分和小数部分组成,也可以使用科学计数法表示,比如:3.14e+10, 60.99E-5

   (3)复数(complex): 复数由实数部分和虚数部分组成,可以使用a + bj或者complex(a, b)来表示,其中a是实数部分,b是虚数部分。复数的实部a和虚部b都是浮点型。


3. Python数字类型转换

   Python数字类型转换就是将一个数据内置的类型进行转换,而数据类型的转换,只需要将数据类型作为函数名即可。

   数字类型转换的函数方法如下:

   int(x): 将x转换为一个整数;

   float(x): 将x转换为一个浮点数

   complex(x): 将x转换为一个复数,其中实部为x,虚部为0;

   complex(x, y): 将x和y转换为一个复数,实部为x,虚部为y,x和y是数字表达式。


4. Python数字元素

   (1)最常见的就是数字之间的加减乘除运算,与其他语言比如Java,C一样。

   (2)Python的浮点数运算在不同的机器上可能有不一样的结果。

   (3)Python的整数除法(/)总是会返回一个浮点型数值结果;而取整除法(//)总是返回向下取整的整数结果值。取整除法得到的并不一定是整数类型的数,它与参与运算的分母分子的数据类型有关。

   (4)不同类型的数进行混合运算时,会将整数转换为浮点数。


5. 数学常量:

   (1)pi: 数学常量 pi(圆周率,一般以π来表示)

   (2)e: 数学常量 e,e即自然常数(自然常数)。

示例代码:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# author : liuhefei
# Time : 2019/11/7
# desc:  Python数据类型之数字

if __name__ == "__main__":
    a = 24  # 正整数
    b = -4  # 负整数
    pi = 3.14 # 浮点数
    num1 = 0xA8F  # 十六进制整数
    num2 = 0o37 # 八进制整数
    num3 = 32.3e+10  # 科学计数法浮点数
    num4 = -67.34e20 # 浮点数
    com1 = 45j  # 复数,只有实部
    com2 = 3j+7 # 复数,含有实部和虚部

    # 数字运行
    x = 20
    y = 3
    z = 2.3
    print("1 - ", x+y)  # 23
    print("2 - ", x-y)  # 17
    print("3 - ", x*y)  # 60
    print("4 - ", x/y)  # 6.666666666666667
    print("5 - ", x//y) # 6
    print("6 - ", x**y) # 8000
    print("7 - ", x%y)  # 2
    print("8 - ", int(z)) # 2
    print("9 - ", x*y/z) # 26.086956521739133

    # 复数运算
    print("10 - ", com1 + com2)  # (7+48j)
    print("11 - ", com1 - com2)  # (-7+42j)

https://img1.sycdn.imooc.com//5dd920cc000148b708680486.jpg

数学函数:

函数     返回值 ( 描述 )

abs(x) 返回数字的绝对值,如abs(-10) 返回 10。

max(x1, x2,...) 返回给定参数的最大值,参数可以为序列。

min(x1, x2,...) 返回给定参数的最小值,参数可以为序列。

math.ceil(x) 返回数字的上入整数,如math.ceil(4.1) 返回 5。

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) 用于获取x的自然对数,其中x > 0。如math.log(math.e)返回1.0,math.log(100,10)返回2.0。

math.log(x, y)  用于获取x,y的对数, 其中x,y > 0,其中x是指数,y是底数。

math.log10(x) 返回以10为基数的x的对数,其中x > 0,如math.log10(100)返回 2.0。

math.modf(x) 返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。

pow(x, y) 返回x的y次方的值, 其中y>0  (内置函数)。

pow(x, y, z) 计算x的y次方,其中y>0(内置函数),再对结果进行z取模,其结果等效于pow(x,y) %z。

math.pow(x, y) 返回x的y次方的值, 其中y>0。

round(x [,n]) 返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

math.sqrt(x) 返回数字x的平方根。


随机数函数

随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。


Python包含以下常用随机数函数:

函数         描述

random.choice(seq) 从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。

random.randrange ([start,] stop [,step]) 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1。

random.random() 随机生成下一个实数,它在[0,1)范围内。

random.seed([x]) 改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。

random.shuffle(lst) 将序列的所有元素随机排序。

random.uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。


三角函数

Python包括以下三角函数:

函数     描述

math.acos(x) 返回x的反余弦弧度值。 x -- -1到1之间的数值。如果x是大于1,会产生一个错误。

math.asin(x) 返回x的反正弦弧度值。 x -- -1到1之间的数值。如果x是大于1,会产生一个错误。

math.atan(x) 返回x的反正切弧度值。 x -- -1到1之间的数值。如果x是大于1,会产生一个错误。

math.atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。

math.cos(x) 返回x的弧度的余弦值。

math.hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)。

math.sin(x) 返回的x弧度的正弦值。

math.tan(x) 返回x弧度的正切值。

math.degrees(x) 将弧度转换为角度,如degrees(math.pi/2) , 返回90.0。

math.radians(x) 将角度转换为弧度。

代码示例:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# author : liuhefei
# Time : 2019/11/9
# desc:  Python数字函数

import math
import random

if __name__ == "__main__":
    # 数学函数
    # 1. abs(x)    返回数字x的绝对值,如abs(-10) 返回 10 (内置函数)
    #  abs() 还可以运用在复数中。
    print("abs(-100) = ", abs(-100))
    print("abs(-3.1415) =  ", abs(-3.1415))
    print("abs(-4j-6) = ", abs(-4j-6))

    # 2. ceil(x) 返回数字x的上入整数(向上取整),如math.ceil(4.1) 返回 5
    print("math.ceil(4.1) =  ", math.ceil(4.1))
    print("math.ceil(-4.6) = ", math.ceil(-4.6))
    print("math.ceil(100.12) = ", math.ceil(100.12))
    print("math.ceil(100.72) = ", math.ceil(100.72))

    # 3. exp(x)    返回e的x次幂(e^x),其中e是自然常数,如math.exp(1) 返回2.718281828459045
    print("math.exp(1) = ", math.exp(1))
    print("math.exp(10) = ", math.exp(10))
    print("math.exp(-100.25) = ", math.exp(-100.25))

    # 4. fabs(x)返回数字x的绝对值,如math.fabs(-10) 返回10.0
    # fabs() 函数只对浮点型跟整型数值有效。
    print("math.fabs(-23.35) = ", math.fabs(-23.35))
    print("math.fabs(-123) = ", math.fabs(-123))

    # 5. floor(x)返回数字的下舍整数(向下取整),其结果值小于或等于x。如math.floor(4.9)返回4
    print("math.floor(4.9) = ", math.floor(4.9))
    print("math.floor(4.1) = ", math.floor(4.1))
    print("math.floor(-78.18) = ", math.floor(-78.18))

    # 6. log(x)用于获取x的自然对数,x > 0。如math.log(math.e)返回1.0,math.log(100,10)返回2.0
    print("math.log(math.e) = ", math.log(math.e))
    print("math.log(10) = ", math.log(10))

    # log(x, y)  用于获取x,y的对数,其中x是指数,y是底数
    print("math.log(100, 10) = ", math.log(100, 10))  # 指数是底数的2次方
    print("math.log(10, 10) =  ", math.log(10, 10))   # 指数与底数相等

    # 7. log10(x)  返回以10为基数的x的对数,其中x > 0,如math.log10(100)返回 2.0
    print("math.log10(100) = ", math.log10(100))  # 底数为10,指数为100
    print("math.log10(25.88) = ", math.log10(25.88))

    # 8. max(x1, x2,...)   返回给定参数的最大值,参数可以为序列。(内置函数)
    print("max(1, 0, -9, 23, 4, 7, -99, 8) = ", max(1, 0, -9, 23, 4, 7, -99, 8))
    print("max(-9, -8, -7, -3) = ", max(-9, -8, -7, -3))

    # 9. min(x1, x2,...)   返回给定参数的最小值,参数可以为序列。(内置函数)
    print("min(-99, 0, -87, -20, -45, 100) = ", min(-99, 0, -87, -20, -45, 100))
    print("min(10, 30, 60, 90) = ", min(10, 30, 60, 90))

    # 10. modf(x)  返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
    print("math.modf(100.88) = ", math.modf(100.88))
    print("math.modf(-100.12) = ", math.modf(-100.12))

    # 11. pow(x, y)    返回x的y次方的值, 其中y>0  (内置函数)
    print("pow(2, 4) = ", pow(2, 4))
    print("pow(-2, 3) = ", pow(-2, 3))

    # pow(x, y, z) 计算x的y次方,再对结果进行z取模,其结果等效于pow(x,y) %z
    print("pow(2, 4, 2) = ", pow(2, 4, 2))
    print("pow(4, 2, 3) = ", pow(4, 2, 3))

    # 12. math.pow(x, y)内置方法会把参数作为整型,而math模块则会把参数转换为float。
    print("math.pow(4, 5) = ", math.pow(4, 5))
    print("math.pow(-6, 2) = ", math.pow(-6, 2))

    # 13.round(x [,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数(内置函数)
    print("round(50.23456) = ", round(50.23456))
    print("round(66.659, 1) = ", round(66.659, 1))
    print("round(80.264, 2) =", round(80.264, 2))
    print("round(100.000056, 3) = ", round(100.000056, 3))
    print("round(-100.000056, 3) = ", round(-100.000056, 3))

    # 13. sqrt(x)  返回数字x的平方根
    print("math.sqrt(100) = ", math.sqrt(100))
    print("math.sqrt(10) = ", math.sqrt(10))
    print("\n")

    # 随机函数
    # 1. random.choice(seq) 返回一个列表,元组或字符串的随机项。 
    # 比如random.choice(range(10)),从0到9中随机挑选一个整数返回。
    print("random.choice(range(10)) = ", random.choice(range(10)))
    print("random.choice([2, 7, 9, 0, 1, 4, 3, 6, 5]) = ", 
           random.choice([2, 7, 9, 0, 1, 4, 3, 6, 5]))
    print("random.choice string = ", 
           random.choice("天国虽美,没有了你,万杯觥筹,只不过是提醒寂寞罢了"))
    print("random.choice tuple = ", random.choice(("你好", "很好笑", "好开心", "好难过")))

    # 2. random.randrange ([start,] stop [,step]) 
    # 从指定范围内,按指定基数递增的集合中获取一个随机数,基数默认值为 1
    # 参数: start -- 指定范围内的开始值,包含在范围内。
    # stop -- 指定范围内的结束值,不包含在范围内。
    # step -- 指定递增基数。
    #  从 1-100 中选取一个奇数
    print("random.randrange(1,100, 2) = ", random.randrange(1, 100, 2))  
    print("random.randrange(100) = ", random.randrange(100))  # 从 0-99 选取一个随机数
    # 返回100到1000之间的随机数
    print("random.randrange(100, 1000) = ", random.randrange(100, 1000))  

    # 3. random.random()   随机生成下一个实数,它在[0,1)范围内。
    print("random.random() : ", random.random())

    # 4.  random.seed([x]) 改变随机数生成器的种子seed。x -- 改变随机数生成器的种子seed。
    # 其中的 x 可以是任意数字,如10,这个时候,先调用它的情况下,
    # 使用 random() 生成的随机数将会是同一个。
    random.seed()
    print("使用默认种子生成随机数:", random.random())
    print("使用默认种子生成随机数:", random.random())

    random.seed(10)
    print("使用整数 10 种子生成随机数:", random.random())
    random.seed(100)
    print("使用整数 100 种子生成随机数:", random.random())

    random.seed("HelloWorld", 2)
    print("使用字符串种子生成随机数:", random.random())

    # 5. random.shuffle(lst)   将序列的所有元素随机排序
    print("随机排序:", random.shuffle([0, 9, 7, 1, 4, 5, 6, 2, 3]))
    print("随机排序:", random.shuffle([0, 9, 7, 1, 4, 5, 6, 2, 3]))

    # 6. uniform(x, y) 随机生成下一个实数,它在[x,y]范围内。
    print("random.uniform(10, 100) = " , random.uniform(10, 100))
    print("random.uniform(-10, 10) = ", random.uniform(-10, 10))
    print("\n")


    # 三角函数
    # 1. math.sin(x) 返回的x弧度的正弦值。数值在 -1 到 1 之间。x是一个数值。
    print("math.sin(30) = ", math.sin(30))
    print("math.sin(-30) = ", math.sin(-30))
    print("math.sin(0) = ", math.sin(0))
    print("math.sin(math.pi) = ", math.sin(math.pi))
    print("math.sin(math.pi/2) = ", math.sin(math.pi / 2))

    # 2. math.asin(x) 返回x的反正弦弧度值。x -- -1到1之间的数值。如果x是大于1,会产生一个错误。
    print("math.asin(0.64) = ", math.asin(0.64))
    print("math.asin(0) = ", math.asin(0))
    print("math.asin(-1) = ", math.asin(-1))
    print("math.asin(1) = ", math.asin(1))

    # 3. math.cos(x) 返回x的弧度的余弦值。-1 到 1 之间, x是一个数值
    print("math.cos(30) = ", math.cos(30))
    print("math.cos(45) = ", math.cos(45))
    print("math.cos(60) = ", math.cos(60))
    print("math.cos(90) = ", math.cos(90))
    print("math.cos(math.pi) = ", math.cos(math.pi))
    print("math.cos(2*math.pi) = ", math.cos(2 * math.pi))
    print("math.cos(0) = ", math.cos(0))
    print("math.cos(-90) = ", math.cos(-90))
    print("math.cos(-60) = ", math.cos(-60))

    # 4. math.acos(x)返回x的反余弦弧度值。x -- -1到1之间的数值。如果x是大于1,会产生一个错误。
    print("math.acos(0.64) = ", math.acos(0.64))
    print("math.acos(0) = ", math.acos(0))
    print("math.acos(-1) = ", math.acos(-1))
    print("math.acos(1) = ", math.acos(1))

    # 5. math.tan(x) 返回x弧度的正切值。数值在 -1 到 1 之间。x是一个数值。
    print("math.tan(30) = ", math.tan(30))
    print("math.tan(-30) = ", math.tan(-30))
    print("math.tan(0) = ", math.tan(0))
    print("math.tan(math.pi) = ", math.tan(math.pi))
    print("math.tan(math.pi/2) = ", math.tan(math.pi / 2))
    print("math.tan(math.pi/4) = ", math.tan(math.pi / 4))

    # 6. math.atan(x) 返回x的反正切弧度值。x -- 一个数值。
    print("math.atan(0.64) = ", math.atan(0.64))
    print("math.atan(0) = ", math.atan(0))
    print("math.atan(10) = ", math.atan(10))
    print("math.atan(-60) = ", math.atan(-60))
    print("math.atan(-1) = ", math.atan(-1))
    print("math.atan(1) = ", math.atan(1))

    # 7. math.atan2(y, x) 返回给定的 X 及 Y 坐标值的反正切值。x,y -- 一个数值。
    print("math.atan2(-0.50,-0.50) = ", math.atan2(-0.50, -0.50))
    print("math.atan2(0.50,0.50) = ", math.atan2(0.50, 0.50))
    print("math.atan2(5,5) = ", math.atan2(5, 5))
    print("math.atan2(-10,10) = ", math.atan2(-10, 10))
    print("math.atan2(10,20) = ", math.atan2(10, 20))

    # 8. math.hypot(x, y) 返回欧几里德范数 sqrt(x*x + y*y)。x,y -- 一个数值。
    print("math.hypot(3, 2) = ", math.hypot(3, 2))
    print("math.hypot(-3, 6) = ", math.hypot(-3, 6))
    print("math.hypot(0, 4) = ", math.hypot(0, 4))

    # 9. math.degrees(x)将弧度转换为角度,返回一个角度值。如degrees(math.pi/2) , 返回90.0
    print("math.degrees(30) = ", math.degrees(30))
    print("math.degrees(-30) = ", math.degrees(-30))
    print("math.degrees(0) = ", math.degrees(0))
    print("math.degrees(math.pi) = ", math.degrees(math.pi))
    print("math.degrees(math.pi/2) = ", math.degrees(math.pi / 2))
    print("math.degrees(math.pi/4) = ", math.degrees(math.pi / 4))

    # 10. math.radians(x)  将角度转换为弧度,返回一个角度的弧度值。x是一个数值
    print("radians(30) = ", math.radians(30))
    print("radians(-30) = ", math.radians(-30))
    print("radians(0) = ", math.radians(0))
    print("radians(math.pi) = ", math.radians(math.pi))
    print("radians(math.pi/2) = ", math.radians(math.pi / 2))
    print("radians(math.pi/4) = ", math.radians(math.pi / 4))

来源于:https://mp.weixin.qq.com/s/9NNN_ahgHC6V5h6ZoEhCzg

https://mp.weixin.qq.com/s/YloNBugZJxrH3KrxUYL4uw


为你推荐优秀的课程:

Python数据分析入门与实践

把Python应用到实际开发 不再空谈语法

Python服务端工程师就业面试指导


点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消