当main是预期的,但在python中检测不到时,该怎么办?

当main是预期的,但在python中检测不到时,该怎么办?,python,windows-subsystem-for-linux,Python,Windows Subsystem For Linux,在python的一个程序中,我在程序开始时定义了main函数,并在最后执行它。当我编译代码时,显示了一个奇怪的语法错误(检查附件) 代码如下: from cs50 import get_string def main(): s = get_string("Text: ") words = countw(s) letters = countl(s) sentences = counts(s) l = (letters/wor

在python的一个程序中,我在程序开始时定义了main函数,并在最后执行它。当我编译代码时,显示了一个奇怪的语法错误(检查附件)

代码如下:

from cs50 import get_string

def main():
    s = get_string("Text: ")
    
    words = countw(s)
    letters = countl(s)
    sentences = counts(s)

    l = (letters/words) * 100
    s = (sentences/words) * 100
    
    index = (0.0588 * 1) - (0.296 * s) - 15.8
    i = round(index)

    print(words)
    print(letters)

    if i < i:
        print("Before Grade 1")
    elif i > 16:
        print("Grade 16+")
    else:
        print("Grade " + str(i))

def countw(string):
    s = len(string.split())
    return s

def countl(string):
    s = len(string)
    return s

def counts(string):
    #todo

main()

这是因为counts()函数为空

解释器认为您对main()的调用是该函数的一部分,因此会发送一个错误

尝试注释掉您的
def计数(字符串):
行:

#定义计数(字符串):
#待办事项
正如@quamrana指出的,当您调用counts函数时,这将导致一个错误。因此,在完成counts()的编码之前,您应该为您的句子变量硬编码一个值


您也可以在函数中编写一个return语句,返回一个在完成编码时要返回的值,如下所示:

def计数(字符串):
#待办事项
返回10

(假设10是句子变量的合理值)

或在注释之前或之后写入
pass
。注释掉
def counts()
只会产生不同的错误。因为
main()
调用
counts()
。因此,如果没有它,将出现错误。
pass
的实际实现将使
counts()
返回
None
,这也将在以后产生另一个错误。
def counts(string)的实现是什么?
?你是说
返回1
ss@comp:/mnt/c/Users/comp/desktop$ python3 readability.py

  File "readability.py", line 37

    main()

    ^
IndentationError: expected an indented block