Python if…和越界错误,该错误不';没道理吗?

Python if…和越界错误,该错误不';没道理吗?,python,Python,我做DFS解决方案是为了好玩,但困扰我的是,通常如果有if…and语句,Python会在第一个语句为False后停止检查。在这种情况下,如果我把这两条语句放在一起,我会得到一个超出范围的索引 例如,这很好 if not nums: if s[i]=='I' and (path[i]<path[i+1]) or (s[i]=='D' and path[i]>path[i+1]): ret=min(ret, path) 如果不是nums: 如果s[i]=“

我做DFS解决方案是为了好玩,但困扰我的是,通常如果有if…and语句,Python会在第一个语句为False后停止检查。在这种情况下,如果我把这两条语句放在一起,我会得到一个超出范围的索引

例如,这很好

if not nums:
    if s[i]=='I' and (path[i]<path[i+1]) or (s[i]=='D' and path[i]>path[i+1]):
           ret=min(ret, path)
如果不是nums:
如果s[i]=“i”和(路径[i]路径[i+1]):
ret=min(ret,路径)
但我会得到一个错误:

if not nums and if s[i]=='I' and (path[i]<path[i+1]) or (s[i]=='D' and path[i]>path[i+1]):
     ret=min(ret, path)
if not nums and if s[i]=“i”and(path[i]path[i+1]):
ret=min(ret,路径)
有人能发现我看不到的东西吗

class Solution(object):
    def findPermutation(self, s):
        """
        :type s: str
        :rtype: List[int]
        """

        def dfs(ret,nums,i,path):
            if not nums:
                if s[i]=='I' and (path[i]<path[i+1]) or (s[i]=='D' and path[i]>path[i+1]):
                    ret=min(ret, path)
            for j in xrange(len(nums)):
                if len(path)>1:
                    if (s[i]=='I' and path[i]>path[i+1]) or (s[i]=='D' and path[i]<path[i+1]):
                        return ret
                    ret=dfs(ret,nums[:j]+nums[j+1:],i+1,path+[nums[j]])
                else:
                    ret=dfs(ret,nums[:j]+nums[j+1:],i,path+[nums[j]])
            return ret
        return dfs([len(s)+3],range(1,len(s)+2),0,[])
类解决方案(对象):
def findPermutation(自身):
"""
:类型s:str
:rtype:List[int]
"""
def dfs(ret、nums、i、路径):
如果不是nums:
如果s[i]=“i”和(路径[i]路径[i+1]):
ret=min(ret,路径)
对于x范围内的j(len(nums)):
如果len(路径)>1:

如果(s[i]='i'和路径[i]>path[i+1])或(s[i]='D'和路径[i],这似乎只是使用额外的
if
的语法错误,请使用:

if not nums and
而不是

if not nums and if

这似乎只是一个语法错误,使用了额外的
,如果
,请使用:

if not nums and
而不是

if not nums and if

如果不是nums和
是无效语法;你可能是指
如果不是nums和
@Haxet,我的回答能解决你的问题吗?
如果不是nums和
是无效语法;你可能是指
如果不是nums和
@Haxet,我的回答能解决你的问题吗?@foslock,谢谢你的改进。@foslock,谢谢你的改进。@foslock,谢谢你的改进愤怒。