Python 缩进中制表符和空格的使用不一致

Python 缩进中制表符和空格的使用不一致,python,indentation,Python,Indentation,我是Python新手。上面粘贴的程序在“如果temp==dna2:”行给出了一个错误“缩进中制表符和空格的使用不一致”。有人能帮我找出缩进是怎么不正确的吗?这意味着缩进中的空格和制表符混淆了。您必须修复该问题,使其与制表符或空格保持一致。假设您有一个“良好”的IDE,最好将制表键设置为4个空格,而不是一个“制表符”,这样您就不会有太多问题,而且这是一个很好的实践,因为您将与其他人一起工作 如果你仔细看这些线 def contains_sequence(dna1, dna2): ''' (

我是Python新手。上面粘贴的程序在“如果temp==dna2:”行给出了一个错误“缩进中制表符和空格的使用不一致”。有人能帮我找出缩进是怎么不正确的吗?

这意味着缩进中的空格和制表符混淆了。您必须修复该问题,使其与制表符或空格保持一致。

假设您有一个“良好”的IDE,最好将制表键设置为4个空格,而不是一个“制表符”,这样您就不会有太多问题,而且这是一个很好的实践,因为您将与其他人一起工作

如果你仔细看这些线

def contains_sequence(dna1, dna2):
    ''' (str, str) -> bool

    Return True if and only if DNA sequence dna2 occurs in the DNA sequence
    dna1.

    >>> contains_sequence('ATCGGC', 'GG')
    True
    >>> contains_sequence('ATCGGC', 'GT')
    False

    '''
    b=False
    len2=len(dna2)
    i=0
    for j in dna1:
        temp=dna1[i:i+len2]
        if temp == dna2:
            b=True
        i=i+1
    return b
在代码中,您将看到每行开头的“空格”是以不同的方式“构造”的。在一种情况下,它使用制表符和其他空格,或者,如果两者都有制表符和空格,则它们以不同的组合使用

您可以通过将光标放在每行的开头并使用右箭头键“漫游”字符来检查这一点。您将看到光标在每一行上的移动方式不同

要修复此问题,请删除每行开头的制表符和空格,然后在每行重新插入具有相同字符的制表符和空格


为避免将来,训练自己只使用Tab键或空格键缩进,并考虑设置编辑器以自动将制表符转换为空格。

< P>根据您的DOC字符串

您的代码:

    temp=dna1[i:i+len2]
    if temp == dna2:
这么大的代码可以简化为一行

b=False
len2=len(dna2)
i=0
for j in dna1:
    temp=dna1[i:i+len2]
    if temp == dna2:
        b=True
    i=i+1
return b

另外,如果你在“vim”编辑器中不擅长缩进,那么在

中练习也很好,我几乎在这个问题上沉默了一段时间。我正在使用CentOS Ec2,发现您可以:

return dna1.find(dna2)>=0
维姆 如果处于写入/插入模式,请按Escape键 :设置列表 空格将显示为行尾,例如
$
符号。
这很有帮助。

在我的例子中,Visual Studio代码

Ctrl+Shift+p或查看->命令选项板

类型

将缩进转换为空格


按Enter键。

在上面的代码中,我们看不到空格和制表符。您可能想发布
cat-evt
的输出,它将分别显示空格和制表符。任何人都知道如何使用vim快速修复?@jb1搜索“vim convert tabs spaces”将为您提供帮助。我们可能同时找到了它,谢谢:^)谢谢,我在复制粘贴过程中在注释中添加了空格 vim <filename> Press Escape Key If you're in write/insert mode :set list