温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python数字的知识点有哪些

发布时间:2021-11-26 09:09:02 来源:亿速云 阅读:381 作者:iii 栏目:互联网科技

这篇文章主要介绍“python数字的知识点有哪些”,在日常操作中,相信很多人在python数字的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”python数字的知识点有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

python中的数字是不可变对象,有整形(int)、浮点型(float)、复数(complex)、布尔型(bool)。

整形

  • 小数字池:范围是-5至256,当数值在这个范围内时解释器不需要新建对象,而是直接把缓存中该数值对应的id赋给变量。

    # 在repl环境中测试下列代码
    >>> a=255
    >>> b=255
    >>> print(id(a),id(b))  # -5至256范围内
    out:
    140728491521632 140728491521632  # a和b的id相同
    >>> a=257
    >>> b=257
    >>> print(id(a),id(b))  # -5至256范围外
    out:
    2083422435600 2083422435632  # a和b的id不同


  • 值的范围:python中整形不区分短整形、整形、长整形,解释器会根据数字的大小动态分配存储空间,值的范围只受限于内存大小。

    import sys
    
    a = 1000
    b = 999999999999999999999
    c = b**2
    print(sys.getsizeof(a))
    print(sys.getsizeof(b))
    print(sys.getsizeof(c))
    
    out:
    28
    36
    44


浮点型

内存消耗:python中浮点型相当于其他编程语言的双精度浮点型,占用内存空间固定为24字节。python中无单精度浮点型。

import sys

a = 9999999999999999999999999999999999999999999.99999999988888888
b = 0.1
print(sys.getsizeof(a), sys.getsizeof(b))

out:
24

值的范围:关于浮点型值的范围可以用用如下方式查看。

import sys

print(sys.float_info)

out:
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

复数

python中的复数与数学中的复数概念完全相同。实际编程中很少用到,只有在极少数需要科学计算的场合才会用到。在此就不赘述了。

布尔

python的布尔型非常特殊,需要着重梳理。布尔是逻辑判断,判断结果只有2种:

  • True:表示真。

  • 字符串、元组、列表、字典、集合、类的实例等,值不为空判定为True。

  • 整形、浮点型、复数,值不为0即判定为True。

  • False:表示假。

  • 字符串、元组、列表、字典、集合、类的实例等,值为空判定为True。

  • 整形、浮点型、复数,值为0即判定为False。

  • None,判定为False。None是没有的意思,即值的没有确定、类型也没有确定。要分清楚None和空的区别:None表示值未分配和类型也未确定,而空表示值未分配但类型已确定。

python的布尔判定设定非常特殊,熟练掌握以后可以写出非常简洁的代码。以下我举个简洁实用的代码实例。

# 删除列表中开头是'a'的元素
list1 = ['aa', 'adc', 'bb', 'cc', 'aa', 'abc', 'dd']
length = len(list1)
while length:  # 效果等价于while length==0
    if list1[length - 1][0] == 'a':
        del list1[length - 1]
    length -= 1
print(list1)

out:
['bb', 'cc', 'dd']
# 检查序列是否有重复记录,并告知重复了几条记录。
list1 = [1, 1, 2, 3, 4, 5]
list2 = [1, 2, 3, 4, 5, 6]

check_repeat = lambda x: len(x) - len(set(x))  # 输入序列,返回序列原长度与去重后长度的差

if repeat_num := check_repeat(list1):  # 等价于check_repeat(list1)>0
    print(list1, f'有{repeat_num}条重复记录' )
else:
    print(list1, '没有重复记录')

if repeat_num := check_repeat(list2):
    print(list1, f'有{repeat_num}条重复记录' )
else:
    print(list1, '没有重复记录')

out:
[1, 1, 2, 3, 4, 5] 有1条重复记录
[1, 1, 2, 3, 4, 5] 没有重复记录

到此,关于“python数字的知识点有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI