You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中main函数调用is_valid_input函数无法正常运行求助

问题原因

Python为解释型语言,代码会自上而下逐行执行,你当前的代码顺序导致调用is_valid_input()时,该函数还没有被解释器加载:

  • 你先定义了main()函数,内部引用了is_valid_input
  • 紧接着执行if __name__ == "__main__"判断触发main()调用,此时is_valid_input的定义写在调用逻辑之后,解释器还未读取到该函数的定义,就会抛出NameError类错误。
  • 你直接调用该函数能正常运行的场景,是因为调用语句写在了函数定义之后,不存在未定义的问题。

解决方案

调整代码顺序,把is_valid_input()函数的定义放在main()函数以及触发调用逻辑之前即可,修改后参考代码如下:

def is_valid_input():
    """
    this function will check if the the guess is ok
    :param letter_guesses: the user's guess
    :type letter_guesses: str
    :return: True if the guess is complies with the rules and False if not
    :rtype: bool
    """
    letter_guessed = input("please guess a letter").lower()
    # 额外提示:代码中的import string未被使用,可直接删除
    if letter_guessed.isalpha() and len(letter_guessed) == 1:
        return True
    else:
        return False

def main():
    # 可以自行添加对返回结果的处理逻辑,示例为打印返回值
    print(is_valid_input())

if __name__ == "__main__":
    main()

内容的提问来源于stack exchange,提问作者shalev haba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 03:54:03