Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.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
python操作符不需要条件语句吗?_Python_Python 3.x - Fatal编程技术网

python操作符不需要条件语句吗?

python操作符不需要条件语句吗?,python,python-3.x,Python,Python 3.x,我看到了我认为是非法的代码片段,但还不确定 这不是完全相同的代码,但我尽量保持原始代码 def validate_check(string): try: len(string) > 0 # do something except Error: # do something lenstring>0不一定要在条件语句中吗?还是python语法?这是有效的语法。但如果你写: len(string) > 0 print("hi

我看到了我认为是非法的代码片段,但还不确定

这不是完全相同的代码,但我尽量保持原始代码

def validate_check(string):
    try:
        len(string) > 0
        # do something
    except Error:
        # do something

lenstring>0不一定要在条件语句中吗?还是python语法?

这是有效的语法。但如果你写:

len(string) > 0
print("hi")
然后,无论字符串的长度如何,都将打印hi。此语句唯一的相关性是,当任一字符串没有长度,或者lenstring的结果与0不可比时,它将抛出异常

代码的作者正在做的是避免更复杂的检查isinstancestring、str和string:或者,我猜,如果isinstancestring、collections.abc.Size和lenstring>0

lenstring>0不一定要在条件语句中吗

不,但是你提供的例子没有多大意义

这里有一个不同的、类似的结构可能会有所帮助:

x = input()

try:
    10 / int(x)
except ZeroDivisionError:
    print("Can't divide by zero")
except ValueError:
    print("Can't convert to int")
计算10/intx的结果以查看它是否会引发错误,但该计算的结果将被丢弃

我之所以说你的例子有点奇怪,是因为与零的比较没有任何效果。因此,虽然代码将作为一种测试是否可以对字符串调用len的方法,但这就是它所能做的。

如果字符串为None,len函数将引发一个错误


也许这就是函数名为validate\u check的原因。

运行代码时看到了什么?取决于您希望执行的操作。。如果您想在字符串长度大于0时执行某项操作,并且只在这种情况下执行,则选择“是”。@Austin无错误。它是有效的,这就是为什么我很好奇。如果它不在条件语句中,它将返回True/False,但您的返回值将不会保存在任何地方。这看起来像是一种复杂且不可靠的方法,用于检查参数字符串是否为字符串类型或是否定义了更精确的_ulen_u方法。试着用一个整数来称呼它,我想你是对的。我又看了一遍代码,len将输入函数作为参数。是否有任何文档描述了这一点?@jayko03您的意思是它看起来像列宁普特?如果我将函数传递给len怎么办?那么它是否像条件语句一样工作呢?如果您将函数传递给len,它将抛出一个TypeError,因此在这种情况下,它将转到except部分。