为什么我的功能不起作用?

时间:2015-09-24 09:08:05

标签: python python-3.x

这是python 3,这个代码基本上检查一个单词在向后读时是否相同。当我通过Visual Studio执行此操作时,没有任何反应,我得到提示按任意键继续......

if "__name__" == "__main__":
    StartProgram() 

def StartProgram():
    Input = AskForDataSimple()
    print(CheckIfPalindrome(Input))

def AskForDataSimple():
    print("Please input the line to test.")
    In = input()
    return In

def CheckIfPalindrome(x):
    if x[::-1] == x:
        return True
    else:
        return False

请注意,这个更简单的版本确实有效:

x = input()

if x[::-1] == x:
    print(True)
else:
    print(False)

2 个答案:

答案 0 :(得分:2)

if "__name__" == "__main__":

将此更改为

if __name__ == "__main__":

__name__是一个包含此模块名称的变量。您需要这些行,以便仅在直接执行此文件时才使用主逻辑,而不是在由其他代码作为模块导入时使用。

它仍然不起作用,因为你需要在这些行之前定义你调用的函数:将这些行移动到文件的末尾。

另外,这个

def CheckIfPalindrome(x):
    if x[::-1] == x:
        return True
    else:
        return False

可以替换为

def CheckIfPalindrome(x):
    return x[::-1] == x

答案 1 :(得分:1)

将main函数移动到文件底部并尝试

if __name__ == "__main__":
      StartProgram()