首页 > 编程语言 >python 判空 is None 和 if not None 对比

python 判空 is None 和 if not None 对比

时间:2023-08-12 10:34:59浏览次数:51  
标签:None python timeit 判空 none using variable Using

Thanks for comments.
I have tested the perform between these:

import timeit

def using_is_none(variable):
    return variable is None

def using_if_not_none(variable):
    return not variable

variable = None

print("Using 'is None':", timeit.timeit(lambda: using_is_none(variable), number=1000000))
print("Using 'if not None':", timeit.timeit(lambda: using_if_not_none(variable), number=1000000))

output:

jn@ubuntu:/code $ py311 /code/jupyter/test.py
Using 'is None': 0.09608164499513805
Using 'if not None': 0.057769965002080426

'if not None' have better performance(In the loop 1000000 times)

Compare to 'is None', use 'if not' have bonus:
Convert var='False', '0' and other empty data structure to set(), which respect the following legacy codes.

So I prefer to keep it.

标签:None,python,timeit,判空,none,using,variable,Using
From: https://www.cnblogs.com/jneeee/p/17624453.html

相关文章

  • a、IPython
    IPython:超越PythonPython有很多开发环境可供选择,IPython(interactivePython的简称,即交互式Python)由FernandoPerez作为一个增强的Python解释器于2001年启动,并由此发展为一个项目。用Perez的原话来说,该项目致力于提供“科学计算的全生命周期开发工具”。如果将Pytho......
  • Anaconda创建python新环境
    Anaconda创建python新环境1、创建python环境方法一:condacreate-npython3.6(环境名字)python=3.7(版本号)方法二:a.从“开始>anaconda>anacondanavigator”,打开如下配置页面:b.在上述页面左侧列表中选择“Environments>Create”c.打开如下页面:重新命名文件夹名,并选择一......
  • 某公司笔试题 - 取近似值(附python代码)
    #写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于0.5,向上取整;小于0.5,则向下取整。#保证输入的数字在32位浮点数范围内num=input("请输入一个正数:")print(int(float(num)+0.5))......
  • 某公司笔试题 - 质数因子(附python代码)
    #输入一个正整数,按照从小到大的顺序输出它的所有质因子(重复的也要列举),(如180的质因子为22335)#数据范围1<=n<=2*10**9+14#质数:指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。importmaths=input("请输入一个正整数:")whileTrue:#isdigit函......
  • Mac M1 设置python3到python
    在bash中,我们可以使用如下方式设置全局变量使用whichpython3找到python3的路径,如下sunly@sunlydeMacBook-Air~%whichpython3/Library/Frameworks/Python.framework/Versions/3.11/bin/python3然后在~/.bash_profile中设置对应的重命名aliaspython="/Library/Framew......
  • 某公司笔试题 - 进制转化(附python代码)
    #写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。#数据范围:保证结果在1<=n<=2**31-1hex_str=input("请输入一个十六进制的数:")whileTrue:try:#将十六进制的数转成10进制s=int(hex_str,16)#数据的取值范围[1,214748364......
  • Python 读取 Arduino 串口数据
    serial读取串口数据初始化serimportserialser=serial.Serial('com1',9600,timeout=1)初始化的参数ser=serial.Serial(port=None,#numberofdevice,numberingstartsat#zero.ifeverythingfails,theuser#canspecifyadevicestring,......
  • 某公司笔试题 - 字符串拆分(附python代码)
    #输入一个字符串,请按长度为8拆分每个输入字符串并进行输出#长度不是8整数倍的字符串请在后面补数字0,空字符串不处理str=input("请输入一个字符串:")#字符串长度1~7时,输出字符串并用0补齐8位iflen(str)<8andlen(str)>0:print(str+'0'*(8-len(str)))#当字符串的长......
  • 某公司笔试题 - 明明的随机数(附python代码)
    #明明生成了N个1到500之间的随机整数,请你删去其中重复的数字,即相同的数字只保留一个,把其余相同的数去掉,然后再把这些数从小到大排序,按照排好的顺序输出。#数据范围:1<=n<=1000,输入的数字大小满足1<=val<=500importrandomimportnumpyasnptimes=input('请输入需要......
  • Python用 PyMC3 贝叶斯推理案例研究:抛硬币和保险索赔发生结果可视化
    全文链接:https://tecdat.cn/?p=33416原文出处:拓端数据部落公众号介绍在这里,我们将帮助客户将PyMC3用于两个贝叶斯推理案例研究:抛硬币和保险索赔发生。方法:回想一下,我们最初的贝叶斯推理方法是:设置先前的假设,并根据启发式、历史或样本数据建立我们数据的“已知已知”。形......