在Python中跳过if语句

在Python中跳过if语句,python,python-3.x,list,Python,Python 3.x,List,我正在写一个刽子手游戏,在这个游戏中,用户可以在预先制作的单词列表中进行选择,或者创建自己的单词列表。稍后程序会自动选择单词进行猜测。 导致问题的部分代码如下所示: question_choice = input("Would you like to guess from premade list or to create your own list of words? Please write premade or own: ") if question_choice == "premade

我正在写一个刽子手游戏,在这个游戏中,用户可以在预先制作的单词列表中进行选择,或者创建自己的单词列表。稍后程序会自动选择单词进行猜测。 导致问题的部分代码如下所示:

question_choice = input("Would you like to guess from premade list or to create your own list of words? Please write premade or own: ")

if question_choice == "premade":
    print(premade_list[quest])

if question_choice == "own":

    length_of_list = int(input("Number of words in your list: "))

    for i in range(0, length_of_list):
        words = input("Your words: ")
        user_list.append(words)
当我选择“自己”来创建自己的列表时,一切都很顺利。但是,当我选择“premade”(premade列表)时,程序返回与var length_of_list相关的错误,如下所示:

“名称错误:未定义名称“列表的长度”

我当然理解,这是由于程序迭代每一行代码并得到“length\u of_list”,在选择premade list时,不会定义它。 我的问题是,当我选择“premade list”选项时,如何完全跳过或避免这个if语句? 我试着把它放到while循环和break中,但我的尝试不起作用


*我不是在寻找现成的答案。请告诉我要走的路


其次,我认为在代码后面的某个地方,您引用的是列表的长度,它只有在您选择“own”时才定义。在运行时,如果question\u choice==“premade”返回true,“own”中的任何代码都不会运行,因此无论是否定义了\u列表的长度。\p>您的问题稍后会出现在代码中,在代码中使用了\u列表的长度变量。如果选择“premade”,则永远不会定义列表的长度

考虑在问题_choice==“premade”brach中定义_列表的长度。也许通过使用(premade_list[quest]),假设premade_list[quest]是一个列表,而不是一个字符串

如果premade_list[quest]是一个字符串,则必须在使用len()之前使用该方法。

我当然理解,这是由于程序迭代每一行代码并获取“length_of_list”,在选择premade list时不会定义它。-这是不正确的。Python将检查这些行的语法错误,但未定义的变量不会导致错误,除非该行实际执行(即,如果实际执行了分支,则
)。我怀疑发生了其他事情。请编辑您的问题,以包括所有代码和完整的错误消息,这将告诉您问题的确切行号。