这篇文章主要介绍“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。
整形、浮点型、复数,值不为0即判定为True。
字符串、元组、列表、字典、集合、类的实例等,值为空判定为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数字的知识点有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。