Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果变量不是None且大于一行中的某个值,如何在python中进行检查?_Python_Python 2.7 - Fatal编程技术网

如果变量不是None且大于一行中的某个值,如何在python中进行检查?

如果变量不是None且大于一行中的某个值,如何在python中进行检查?,python,python-2.7,Python,Python 2.7,如何在一行中表达这一观点 if x is not None: if x > 0: pass 如果我只写“and”,如果没有,则显示异常 if x is not None and x > 0: pass 您还可以使用python三元运算符。在您的示例中,这可能会对您有所帮助。您还可以进一步扩展该功能 #if X is None, do nothing >>> x = '' >>> x if x and x>

如何在一行中表达这一观点

if x is not None:
    if x > 0:
        pass
如果我只写“and”,如果没有,则显示异常

if x is not None and x > 0:
     pass

您还可以使用python三元运算符。在您的示例中,这可能会对您有所帮助。您还可以进一步扩展该功能

#if X is None, do nothing
>>> x = ''
>>> x if x and x>0 else None
#if x is not None, print it
>>> x = 1
>>> x if x and x>0 else None
1
处理字符串值

>>> x = 'hello'
>>> x if x and len(x)>0 else None
'hello'
>>> x = ''
>>> x if x and len(x)>0 else None
>>>

您还可以使用python三元运算符。在您的示例中,这可能会对您有所帮助。您还可以进一步扩展该功能

#if X is None, do nothing
>>> x = ''
>>> x if x and x>0 else None
#if x is not None, print it
>>> x = 1
>>> x if x and x>0 else None
1
处理字符串值

>>> x = 'hello'
>>> x if x and len(x)>0 else None
'hello'
>>> x = ''
>>> x if x and len(x)>0 else None
>>>
一些代码如下:

if x and x > 0:
    pass
一些代码如下:

if x and x > 0:
    pass

Python没有特定的函数来测试是否定义了变量,因为所有变量都应该在使用前定义好,即使最初分配给None对象也是如此。尝试访问以前未定义的变量会引发NameError异常,您可以使用try/except语句处理该异常,就像处理任何其他Python异常一样

try: x
except NameError: some_fallback_operation(  )
else: some_operation(x)
参考:

Python没有特定的函数来测试是否定义了变量,因为所有变量都应该在使用前定义好,即使最初分配给None对象也是如此。尝试访问以前未定义的变量会引发NameError异常,您可以使用try/except语句处理该异常,就像处理任何其他Python异常一样

try: x
except NameError: some_fallback_operation(  )
else: some_operation(x)
参考:

请提供一个复制问题并可运行的。在您的情况下,x是什么?不可复制:如果x不是None且x>0:printNot None+其他:printNone适用于py2.7中的整数、字符串和列表。例外情况是什么?NameError:名称“x”未定义这意味着。。。x没有定义。。。Python基础知识,在使用变量之前必须初始化它们!请提供一个复制问题并可运行的。在您的情况下,x是什么?不可复制:如果x不是None且x>0:printNot None+其他:printNone适用于py2.7中的整数、字符串和列表。例外情况是什么?NameError:名称“x”未定义这意味着。。。x没有定义。。。Python基础知识,在使用变量之前必须初始化它们!x=并不意味着x是无,而是长度为0的str。改用x=None。虽然这是可行的,但是OP的代码已经可以工作了,如果他的x真的没有,但是从评论中你可以看到x确实没有定义。如果x未定义,您的解决方案也会失败。在这种情况下,请小心使用if x,因为除None之外的其他内容都可能计算为False。在@Tomothy32上进行后续操作-使用x=0尝试您的运算符。你希望得到什么样的结果?@Tomothy32,我读了你的评论。是,在此条件检查之前必须定义X。我同意如果x,正如你们所说,这将失败,但这里我们有另一个检查,它的评估结果是x值大于0。在这种情况下,>>>>x='str'>>>x如果x和lenx>0,则没有'str'@ChristianKönig Well。。。由于x>0的条件,0不是最好的例子,但这一点很清楚。x=并不意味着x为无,而是长度为0的str。改用x=None。虽然这是可行的,但是OP的代码已经可以工作了,如果他的x真的没有,但是从评论中你可以看到x确实没有定义。如果x未定义,您的解决方案也会失败。在这种情况下,请小心使用if x,因为除None之外的其他内容都可能计算为False。在@Tomothy32上进行后续操作-使用x=0尝试您的运算符。你希望得到什么样的结果?@Tomothy32,我读了你的评论。是,在此条件检查之前必须定义X。我同意如果x,正如你们所说,这将失败,但这里我们有另一个检查,它的评估结果是x值大于0。在这种情况下,>>>>x='str'>>>x如果x和lenx>0,则没有'str'@ChristianKönig Well。。。由于x>0的条件,0不是最好的例子,但问题很清楚。