• 技术文章 >Python技术 >Python基础教程

    Python数值类型(整形、浮点型和复数)及其用法

    silencementsilencement2019-07-02 09:56:26原创3457

    数值类型是计算机程序最常用的一种类型,既可用于记录各种游戏的分数、游戏角色的生命值、伤害值等,也可记录各种物品的价格、数量等,Python 提供了对各种数值类型的支持,如支持整型、浮点型和复数。

    Python整型

    Python 3 的整型支持各种整数值,不管是小的整数值,还是大的整数值,Python 都能轻松处理(不像某些语言,short、int、long 等整型增加了开发难度)。

    例如如下代码:

    1

    2

    3

    4

    5

    6

    7

    8

    #定义变量a,赋值为56

    a = 56

    print(a)

    #为a赋值一个大整数

    a = 9999999999999999999999

    print(a)

    #type()函数用于返回变量的类型

    print(type (a))

    上面程序中粗体字代码将 9999999999999999999999 大整数赋值给变量 a,Python 也不会发生溢出等问题,程序运行一样正常,这就是 Python 的魅力:别搞那些乱七八糟的底层细节,非专业人士也不关心什么字节之类的细节。

    使用 Python 3.x 运行上面程序,可以看到如下输出结果:

    1

    2

    3

    56

    9999999999999999999999

    <class 'int'>

    从上面的输出结果可以看出,此时 a 依然是 int 类型。

    但如果用 Python 2.x 运行上面程序,则可以看到如下输出结果:

    1

    2

    3

    56

    9999999999999999999999

    <type 'long'>

    对比两种输出结果,不难发现:不管是 Python 3.x 还是 Python 2.x,Python 完全可以正常处理很大的整数,只是 Python 2.x 底层会将大整数当成 long 类型处理,但开发者通常不需要理会这种细节。

    Python 的整型支持 None 值(空值),例如如下代码:

    1

    2

    a = None

    print(a)

    Python 的整型数值有 4 种表示形式:十进制形式:最普通的整数就是十进制形式的整数。二进制形式:以 0b 或 0B 开头的整数就是二进制形式的整数。八进制形式:以 0o 或 0O 开头的整数就是八进制形式的整数(第二个字母是大写或小写的 O)。十六进制形式:以 0x 或 0X 开头的整数就是十六进制形式的整数,其中 10~15 分别以 a~f( 此处的 a~f 不区分大小写)来表示。

    下面代码片段使用了其他进制形式的数:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    #以0x或0X开头的整型数值是十六进制形式的整数

    hex_value1 = 0x13

    hex_value2 = 0xaF

    print("hexValue1 的值为:",hex_value1)

    print("hexValue2 的值为:",hex_value2)

    #以0b或0B开头的整型数值是二进制形式的整数

    bin_val = 0b111

    print('bin_val的值为:',bin_val)

    bin_val = 0B101

    print('bin_val的值为:',bin_val)

    #以0o或0O开头的整型数值是八进制形式的整数

    oct_val = 0o54

    print('oct_val 的值为:',oct_val)

    oct_val = 0O17

    print('oct_val 的值为:',oct_val)

    为了提高数值(包括浮点型)的可读性,Python 3.x 允许为数值(包括浮点型)增加下画线作为分隔符。这些下画线并不会影响数值本身。例如如下代码:

    1

    2

    3

    4

    5

    #在数值中使用下画线

    one_million = 1000000

    print(one_million)

    price = 234_234_234 #price 实际的值为234234234

    android = 12341234 #android 实际的值为12341234

    Python浮点型

    浮点型数值用于保存带小数点的数值,Python 的浮点数有两种表示形式:

    十进制形式:这种形式就是平常简单的浮点数,例如 5.12、512.0、0.512。浮点数必须包含一个小数点,否则会被当成整数类型处理。

    科学计数形式:例如 5.12e2(即 5.12×102)、5.12E2(也是 5.12 ×102)。

    必须指出的是,只有浮点型数值才可以使用科学计数形式表示。例如 51200 是一个整型值,但 512E2 则是浮点型值。

    Python 不允许除以 0 。不管是整型值还是浮点型值,Python 都不允许除以 0。

    下面程序示范了上面介绍的关于浮点数的各个知识点:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    af1 = 5.2345556

    #输出af1的值

    print("af1的值为:",af1)

    af2 = 25.2345

    print("af2的类型为:",type(af2))

    f1=5.12e2

    print("f1的值为:",f1)

    f2 = 5e3

    print("f2的值为:",f2)

    print("f2的类型为:",type(f2))#看到类型为float

    通过最后一行粗体字代码可以看出,虽然 5e3 的值是 5000,但它依然是浮点型值,而不是整型值,因为 Python 会自动将该数值变为 5000.0。

    复数

    Python 甚至可以支持复数,复数的虚部用 j 或 J 来表示。

    下面程序示范了复数的用法:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    ac1 = 3 + 0.2j

    print (ac1)

    print(type(ac1)) #输出复数类型

    ac2 = 4 - 0.1j

    print(ac2)

    #复数运行

    print(ac1 + ac2) #输出(7+0.1j)

    #导入cmath 模块

    import cmath

    #sqrt()是cmath 模块下的商数,用于计算平方根

    ac3 = cmath.sqrt(-1)

    print (ac3) #输出1j

    专题推荐:数值类型
    上一篇:Python格式化字符串(格式化输出) 下一篇:Windows安装Python详解

    相关文章推荐

    • Python random模块及用法• Python格式化字符串(格式化输出)

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网